私はループで(JSを使用して)一連の変数を生成していますが、現在のインデックスに基づいて.id
と.name
を割り当てています。各ループでは、jQuery.post()
メソッドを使用してサーバーに要求を送信していますが、返される応答は空の変数に過ぎません。 は、ここでは、コードです:jQuery.post()がサーバーにデータを返すと空のレスポンスが返される
はJavaScript
for (var index = 0; index < 5; index++) {
var myVar = document.createElement('p');
myVar.id = 'myVarID' + index;
myVar.name = 'myVarName' + index;
//Send request to server
$(document).ready(function(){
var data = {};
var i = 'ind';
var id = myVar.id;
var name = myVar.name;
data[id] = name;
data[i] = index;
$.post("script.php", data, function(data){
console.log("Server response:", data);
});
});
}
PHP
<?php
$index = $_POST['ind'];
$myVar = $_POST['myVarID'.$index];
echo $myVar;
?>
応答:Server response: ''
私が代わりにJSコードで静的な指標を設定した場合、GE例えばので、ループを取り除くめの設定:
var index = 0;
私が期待した結果を得る:Server response: myVarName0
ですが、なぜでしょうか?そして私はそれをどのように解決できますか?
あなたの努力のおかげで、これは本当に私の質問への答えではありません。なぜ私のコードが静的な変数で動作しているのか、動的な動作ではないのかを理解しようとしています。 – leota