2014-04-02 91 views
1

大家好我试着去传递表单数据和使用AJAX调用一个额外的变量,如下图所示: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当我尝试再打“不”可变我得到一个错误说未定义的索引。我的PHP文件中 我想:

$test = $_POST['no']; 
echo $test; 
点击我当

收到一条未定义指数无一弹出。

+2

检查浏览器的开发工具它发送的是什么数据.. –

+1

或做一个'var_dump($ _ POST)' – Prisoner

+0

我会做并发布结果 - 非常感谢 – TotalNewbie

回答

2

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

尝试这样的:

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

感谢非常好的答案工作 - 并欢呼的家伙,建议倾倒内容发布我很新奇我没有想到它谢谢你 – TotalNewbie

+1

高兴地帮助你:) –

1

DATAS应该内{}在AJAX传递这样

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

这将保持您的表格值

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); 
     } 
    }); 
}