【问题标题】:Cannot extract default values for json object using ajax无法使用 ajax 提取 json 对象的默认值
【发布时间】:2016-03-17 00:40:29
【问题描述】:

我正在尝试使用 ajax 来验证一个简单的表单,但我使用的是 3 个部分。 front side.html、back side.php 和 main javascript.js。我也在使用伪服务器。问题就在这里。

$("#InsertDefault").click(function()
{ $.ajax("backend.php?act=default", { success: function(result){
console.log($.parseJSON(result))
data = $.parseJSON(result);
document.getElementById("name").value = data["name"]
},
error: document.getElementById("errors").innerHTML  = "<li>It didn't work...  </li>"      
}); // ajax close
}); //click close

当我调用ajax时,我想输入backend.php,并将参数“act”设置为默认值。

// Return JSON default data if requested
if ($_REQUEST['act'] == 'default'){
$defaultData = array('name' => "Jane", 'postal' => "L5B4G6", 'phone' => "9055751212",'address' => "135 Fennel Street");
echo json_encode($defaultData);
}

如果这可行,我对 ajax 调用有一个成功选项,该选项采用“result”(默认值作为字符串)并将其解析为 JSON,从而生成一个名为 data 的对象。当我从默认情况下应为“Jane”的数据中获取名称并将其放入我的文本字段的值字段中时

<input type="text" id="name" name="name"/>

它应该使用名称 Jane 填充它,但它却失败了,并且我的错误选项“它不起作用”是否犯了错误或未能添加某些内容?

【问题讨论】:

    标签: php jquery json ajax forms


    【解决方案1】:

    你在 php 部分的 echo 之前缺少 header('Content-type: application/json'); 的东西。目前 ajax 得到的是纯文本而不是 json 响应。

    【讨论】:

    • 我尝试在里面添加那行,但它似乎没有帮助改变任何东西。
    【解决方案2】:

    修复你的 ajax:

    $.ajax({
    url:"backend.php?act=default",
    success: function(result){
      $("#name").val(result.name);
    }});
    

    在 backend.php 中使用标头 header('Content-type: application/json');

    【讨论】:

    • 虽然更吸引人,但我在替换您的代码时遇到了新错误,与未知标识符有关
    【解决方案3】:

    使用. 在javascript 中访问数组中的任何内容,

    合作

    改变

    document.getElementById("name").value = data["name"]// this is in php
    

    var data = $.parseJSON(result);
    alert(data.name)
    document.getElementById("name").value = data.name
                                                 ^
    data.name;// for name,
    data.postal;// for postal code
    ..// so on
    

    【讨论】:

    • 这给了我一点希望,因为控制台打印了默认的 json 对象!但由于某种原因它停止工作,我无法提取名称......
    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多