无法检索从AJAX发送的POST数据,未定义的索引php

时间:2015-02-27 00:31:49

标签: javascript php jquery ajax forms

这是我的ajax形式,

$.ajax({
type: "POST",
url: "update_coordinate.php",
data: 
'id=' +$id+
'name=' +$name+
'wname=' +$wname+
'xcor=' +$xcor+
'ycor=' +$ycor+
'xwid=' +$xwid+
'yhei=' +$yhei+
'photo=' +$photo+
'targeturl=' +$targeturl,
success: function(data){
alert(
' id:' +$id+
' name:' +$name+
' wname:' +$wname+
' xcor:' +$xcor+
' ycor:' +$ycor+
' xwid:' +$xwid+
' yhei:' +$yhei+
' photo:' +$photo+
' targeturl:' +$targeturl
);
alert(data);
}
});

警报显示所有数据,问题是php方面似乎没有读取值,我不确定我是否遗漏了某些东西。

这很有意思:在搞乱的时候,我不知何故得到了包含等号的名字字段中输入的整个连接字符串......怎么会发生这种情况?

我拿出了if(post)参数,该参数在使用方法发布和提交按钮将html表单提交到同一页面时使用。我不知道那是不是坏事。

我尝试了这两个

if(isset($_POST['id'])){
 $id = $_POST['id'];
 }else {
 $id = "";
 }

 $name = $_POST['name'];

获取错误未定义的索引:其余的名称是正确的,因为我指定了一个空的

的任意字符串值

我错过了什么?

2 个答案:

答案 0 :(得分:1)

使用jQuery Post:

$.post( "update_coordinate.php", { 
    'id':$id,
    'name':$name,
    'wname':$wname,
    'xcor':$xcor,
    'ycor':$ycor,
    'xwid':$xwid,
    'yhei':$yhei,
    'photo':$photo,
    'targeturl':$targeturl
}).done(function( data ) {
    alert( "Server Response: " + data );
});

因为这将正确发送POST数据,因为每次我尝试使用ajax并拥有数据字符串时,由于服务器认为它是一个url / query字符串,它似乎总是作为GET发送。

此外,通过执行上述操作,您可以轻松地将JS数组发送到PHP或其他对象。

答案 1 :(得分:1)

您缺少的是如何格式化JSON。 " +"运算符将所有内容连接成一个字符串。 JSON的格式为{propertyname}:{value}

$.ajax({
   type: "POST",
   url: "update_coordinate.php",
   data: {
           'id' : $id,
           'name': $name,
           'wname': $wname,
           'xcor': $xcor,
           'ycor': $ycor,
           'xwid': $xwid,
           'yhei': $yhei,
           'photo': $photo,
           'targeturl': $targeturl
   }, 
   success: function(data){
     alert(
       ' id' +$id+
       ' name:' +$name+
       ' wname:' +$wname+
       ' xcor:' +$xcor+
       ' ycor:' +$ycor+
       ' xwid:' +$xwid+
       ' yhei:' +$yhei+
       ' photo:' +$photo+
       ' targeturl:' +$targeturl
 );
 alert(data);
 }

});