Ajax链接json数据类型调用


ajax link json datatype call

我想通过ajax发送数据到其他页面。我已经把问题分离出来了。这是代码

谢谢你们的帮助,但是没有效果。

<

更新代码/strong>

工作…

<script>
     $(document).ready(function(){
     $(".edit").click(function(event) {
    event.preventDefault(); //<--- to prevent the default behaviour
    var box = 1233;
    var size=123;
    var itemname=123;
    var potency=123;
    var quantity=12333;
    var dataString ={
                'box' :box,
                'size':size ,
                'itemname':itemname,
                'potency':potency,
                'quantity':quantity
                };

    $.ajax({
            url: "dd.php",
            type: "post",
            data: dataString,
            success: function(data) {
            alert(data); 
            },
            error: function(data) {
            alert(data);
            }
            });
       });
       });
    </script>
点击链接,它会导航到dd。php里面有

<?php
echo json_encode(array('itemcode'=>$_POST['itemname']));
   echo $_POST['itemname'];
?>

我得到Object Object作为alert。我做错了什么?

$(document).ready(function(){
    $(".edit").click(function(event) {
    event.preventDefault();
    var data = {"box":1233,
   "size":565,
   "itemname":565,
   "potency":876,
   "quantity":234};
            $.ajax({
            url: "dd.php",
            type: "post",
            data: data,
            dataType: "json",
            success: function(data) {
            if(console){
    console.log(data);
}
            },
            error: function(data) {
            if(console){
    console.log(data);
}
            }
            });
        });
    });

有几件事需要考虑…您可以将数据作为object..发布,这样更干净,更容易使用

$(".edit").click(function(event) {
event.preventDefault(); //<--- to prevent the default behaviour
var box = 1233;
....
var dataString ={'box':box,'size':size,'itemname':itemname,'potency':potency,'quantity':quantity};
$.ajax({
        url: "dd.php",
        type: "post",
        data: dataString,
        dataType: "json", //<--- here this means the response is expected as JSON from the server
        success: function(data) {
        alert(data.itemcode); //<--here alert itemcode
        },
        error: function(data) {
        alert(data);
        }
        });
所以你需要在PHP中以json形式发送响应

<?php
   echo json_encode(array('itemcode'=>$_POST['itemname']))
?>

您使用的是在GET请求中发送的querystring

如果您想以相同的形式发送数据,您可以将其用于GET请求类型:

 $.ajax({
            url: "dd.php"+dataString,
            type: "get",
            dataType: "json",
            success: function(data) {
              console.log(data);
              alert(data.itemcode);
            },
            error: function(data) {
            alert(data);
            }
      });

或者对于POST请求,你必须把数据放在json对象形式,所以你可以使用:

var dataString ={
            'box' :box,
            'size':size ,
            'itemname':itemname,
            'potency':potency,
            'quantity':quantity
            };
            $.ajax({
            url: "dd.php",
            type: "post",
            data: dataString,
            dataType: "json",
            success: function(data) {
                     console.log(data);
                     alert(data.itemcode);
            },
            error: function(data) {
            alert(data);
            }
            });
        });

并在php代码中添加echo:

<?php
echo json_encode(array('itemcode'=>$_POST['itemname']))
?>

Javascript alert显示[Object Object]为Object。您可以使用console.log查看响应,也可以将该键与alert一起使用。

更多信息,请参考jQuery.ajax()