Jquery $ .post到php并以json格式返回

时间:2013-08-24 17:13:06

标签: jquery json

基于this 回答尝试修改jQuery以将数据发送到PHP并以JSON格式返回。

创建了这个

$.post(
    "__02.php", 
    {
        'date_day': date_day,
        'currency': currency
    }, 
    function (data, textStatus) {
        $('#currency_load').html(data);
        $('#is_row_changed_currency' + suffix).val(0)
    }, 
    "json"
);

PHP就像这样

 $arr = array ('item1'=>"I love jquery4u",'item2'=>"You love jQuery4u",'item3'=>"We love jQuery4u");
echo json_encode($arr);

但是不起作用。需要纠正什么?

对于没有JSON的比较,这可行:

$.post("__02.php", { 'date_day': date_day, 'currency': currency }, function(data) {
    $('#currency_load').html(data);
    $('#is_row_changed_currency' + suffix).val(0)
});

json是获得以下目标所必需的

这样的jquery代码
$('#div1').html("<p>item1="+data.item1+"</p>");
$('#div2').html("<p>item2="+data.item2+"</p>");

html喜欢

<div id="div1"></div>
<div id="div2"></div>

目标在某个id中显示来自php数组的相应值/元素。没有json不知道如何做到这一点。 html另外div也需要使用input。所以在input1 php数组值[0]等等

似乎function (data, textStatus)必须修改为function (data, success)

1 个答案:

答案 0 :(得分:1)

您正在将一个对象(整个JSON响应)传递给.html(),这将无效。您需要从要显示的对象中选择一些内容,例如:

$( '#currency_load' ).html( data.item1 );

如果您只想确认数据是否已正确收到,请改为使用the consoleconsole.log( data )