我正在尝试使用ajax来验证一个简单的表单,但我正在使用3个部分。前side.html,后side.php和主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填充它,但它失败并且我的错误选项“它不起作用”有错误或未能添加内容吗?
答案 0 :(得分:0)
使用.
从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
答案 1 :(得分:0)
你在php部分的echo之前缺少header('Content-type: application/json');
。目前ajax的东西是纯文本而不是json响应。
答案 2 :(得分:0)
修复你的ajax:
$.ajax({
url:"backend.php?act=default",
success: function(result){
$("#name").val(result.name);
}});
在backend.php中使用标题header('Content-type: application/json');