事前に選択した値をphp経由で出力するフォームを備えたphpサイトがあります。フォームの送信時に、どの値が変更されたかを確認し、JavaScriptを介して送信します。
これらは、phpから渡した事前に選択された値です。連想配列構造を維持することが重要です。
var pbData = jQuery.parseJSON("{
"GameMode":"DEATHMATCH",
"Current Map":"VEGAS JUNKYARD",
"Current Missions":["VEGAS JUNKYARD","VILLA","PRESIDIO","KILL HOUSE","MURDERTOWN","CQB TRAINING","STREETS","THREE KINGDOMS CASINO","IMPORT\/EXPORT;"],
"RoundDuration":"3 minutes"}");
コードでエラーをマークしました。
<script>
function displayVars(){
var form = document.getElementById('settings');
var elems = form.elements;
var txt = "";
for (var index = 0; index < elems.length; index++){
var selIndex = elems[index].selectedIndex;
if (typeof selIndex !== "undefined"){
//the Index Name in the json-object and the name of the form-field are the same
var idxName = elems[index].name;
//HERE is the problem. I want to access the subobject via a variablename, so i can iterate through it, but that doesnt work.
console.log ("pbData default = "+pbData.idxName); //always undefined
if (elems[index].value !== pbData.idx_name){
//building a POST-Url
txt = txt + elems[index].name + "=" + elems[index].options[selIndex].value+"&";
}
}
}
console.log (txt);
return false;
}
</script>
これは、jQueryでも別の方法で実行できることを私は知っています。私の場合、どのような場合でもphp変数として事前に選択された値があるので、このように簡単だと思います。オブジェクト名を含む変数を介してサブオブジェクトを反復処理する方法を本当に知りたいです。