Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX传递变量问题_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript AJAX传递变量问题

Javascript AJAX传递变量问题,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,您好,我正在尝试使用AJAX调用传递表单数据和附加变量,如下所示: function tempFunction(obj) { var data = $('form').serializeArray(); data.push( { no: $(obj).attr('id') } ); $.ajax({ type: "POST", url: "/tempproject/main/

您好,我正在尝试使用AJAX调用传递表单数据和附加变量,如下所示:

function tempFunction(obj) {
    var data = $('form').serializeArray();
    data.push(
        {
            no: $(obj).attr('id')
        }
    );

    $.ajax({
        type: "POST",
        url: "/tempproject/main/changepage",
        data: data,
        success: function (msg) {
            alert(msg);
        }
    });
}
然而,在PHP中,当我尝试回调'no'变量时,我得到一个错误,表示未定义索引。 在我的php文件中,我正在尝试:

$test  = $_POST['no'];
echo $test;

单击时,我收到一个弹出窗口,显示未定义的索引编号。

数组的每个元素都是一个具有名称和值属性的对象:

试着这样做:

data.push({name: 'no', value: $(obj).attr('id')});

数据应该像在ajax中这样在
{}
中传递

    $.ajax({
        type: "POST",
        url: "/tempproject/main/changepage",
        data: "{no: " + $(obj).attr('id') + "}",
        success: function (msg) {
            alert(msg);
        }
    });

这将保留表单值

function tempFunction(obj) {

  var data = $('form').serialize(); 
  data += '&no='.$(obj).attr('id');

  $.ajax({
        type: "POST",
        url: "/tempproject/main/changepage",
        data: data,
        success: function (msg) {
            alert(msg);
        }
    });
}

签入浏览器的开发工具发送什么数据..或执行
var_dump($\u POST)
我将执行并发布结果-非常感谢
serializeArray()
()以以下格式返回数组:[{name:“name”,value:“name”},…]。因此,你的
push()
调用是错误的。^这样看来,我得到了一个完美的数组,直到推送数据被列为未定义状态为止。非常感谢最好的答案奏效了。为那些建议放弃帖子内容的家伙们干杯,我太新手了,我甚至都没想到。谢谢