我在Javascript中有一个数组,我试图传递给PHP。我的数组看起来像这样。
Array[0]
"empNo" : "1347"
"empName" : "John Doe"
我正在使用此javascript构建此数组:
$('input[type=text]').each(function()
{
if ($(this).attr("value").length>0)
{
param[$(this).attr("id")]=$(this).attr("value");
}
});
然后我使用
将数组传递给php$.post("example.php",param)
然后在php中,当我尝试与这样的帖子进行交互时:
$emp=$_POST['empNo'];
$name=$_POST['empName'];
echo ($_GET[0]);//this is for testing
它抛出一个错误,说The Indexes of empNo and empName are not Defined
。
它还说0 is an undefined offset
谢谢你的帮助
答案 0 :(得分:5)
而不是循环并手动构建您的数据,只需对整个表单执行此操作。
var data = $('form').serialize();
$.post("example.php", data);
然后你应该按照自己的意愿访问php脚本。
但是请确保您使用<input name="exampleName" />
属性,然后尝试像这样访问它们......
$value = $_POST['exampleName'];
现在,看起来您正在尝试使用id
代替name
答案 1 :(得分:1)
我的第一个猜测是$ _POST有一个数组,其成员是你要发送的值。
所以,我认为价值在$ _POST [1],$ _POST [2]等......
尝试print_r($ _ POST)并查看变量的去向。
回复你的评论:
我会稍微整理一下,只是一个建议 - 特别是attr('value')部分。
$('input[type=text]').each(function() {
if ( $(this).val() ) {
param[$(this).attr('id')] = $(this).val();
}
});
答案 2 :(得分:0)
试试这个
var param = $('form').serialize();
$.post("example.php", param);