dポイントプレゼントキャンペーン実施中!

ajaxでPOSTする変数の変数名を動的に変えたいのですが、方法が分かりません。

unction Addnt(num){
var pnum = $("#p"+num).val();
var num = num;
$.ajax({
type: "POST",
url: "addnt.php",
data: {"'p'+num+":pnum,"num":num},
dataType: "json",
success: function(data, status){


},
error: function(XMLHttpRequest, status, errorThrown){
alert("入力をご確認ください。");
}
});
}

と言う風に
data: {"'p'+num+":pnum,"num":num},
としたのですがうまくいきません。
p+numのkeyでpostしたいのです。
PHP側でどのように飛んだか確認する方法ってないですよね・・・。
よろしくお願いします。

A 回答 (4件)

No.1の回答訂正、


JSONリクエストだから、確認テスト用のPHPは
<?php
header("Content-type:text/javascript");
print_r(json_encode($_POST));
?>
これだけ
これを使ってNo.2の回答を試したら、
少なくともその部分は正常に出来てました。
    • good
    • 0
この回答へのお礼

有難うございました。こちらもうまくいきました。
evalって何?ってところですが・・・。
DBにも登録できたのでほぼOKです。これからUpdateのときにどうするか朝鮮します。

お礼日時:2009/12/15 21:03

こうすれば、おそらく意図どおりでは、(少なくともリクエストヘッダーは)


function Addnt(num){
var pnum = $("#p"+num).val();
var num = num;
var data_obj={};
eval("data_obj.p" + num +'= pnum;');
data_obj.num=num;
$.ajax({
type: "POST",
url: "addnt.php",
data:data_obj,
dataType: "json",
success: function(data, status){
},
error: function(XMLHttpRequest, status, errorThrown){
alert("入力をご確認ください。");
}
});
}
    • good
    • 0

もっととりあえず


firefoxのアドオン「LiveHTTPheaders」というツールで
モニターできます。
    • good
    • 0

とりあえず、PHP側でどのように飛んだか確認する方法は


<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>ReciveTest</title>
</head>
<body>
<pre>
<?php
print_r($_REQUEST);
?>
</pre>
</body>
</html>
のようなPHPファイルにPOSTしてやれば確認できます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!