这是我第一次尝试使用AJAX -我的网站需要在运行时调用PHP,当用户离开一个特定的表单字段(VIN)。我将这个字段的值传递给一个PHP函数进行验证和处理。然后PHP应该为3个不同的表单字段返回3个值。这是我的问题:我不会得到3个值回到我的javascript。
每次当我在php中使用ECHO json_encode时,AJAX调用崩溃,控制台显示"VM7190:1未捕获的SyntaxError: JSON中位置0(…)中的意外令牌Y"。
如果我在PHP中放置任何其他简单的ECHO, AJAX调用将返回一个错误。
如果我从PHP中删除每个ECHO, AJAX调用返回成功,但返回的数据为NULL。
如果我能在这里找到解决这个问题的方法就太好了。
如果有人想测试网站-这是网址:mycarbio
非常感谢。
这是我的AJAX调用:function decode_my_vin(myvin) {
alert("in decode_my_vin");
dataoneID = '123';
dataoneKEY = 'xyz';
jQuery.ajax(
{
cache: false,
type: 'POST',
url: '/wp-content/themes/Impreza-child/vin-decoder.php',
dataType:'json',
data: {
'value1_VIN': myvin,
'value2_ID': dataoneID,
'value3_KEY': dataoneKEY,
'value4_Year': ' ',
'value5_Make': ' ',
'value6_Model': ' '
},
// async: false,
success: function(response) {
var obj = jQuery.parseJSON(response);
alert("success returned: " + obj);
document.getElementById("fld_7290902_1").value = "2015";
document.getElementById("fld_1595243_1").value = "Ford";
document.getElementById("fld_7532728_1").value = "Focus";
return;
},
error: function() { alert("error in der jquery"); }
});
}
这是PHP
<?php
header('Content-Type: application/json');
$resultYear = '2010';
$resultMake = 'Ford';
$resultModel = 'Focus';
$vinResult = array("Year: ", $resultYear, "Make: ", $resultMake, "Model: ", $resultModel);
echo json_encode($vinResult);
?>
这可能不是您唯一的问题,但是您应该在呈现JSON时尝试使用关联数组:
$vinResult = array(
'Year' => $resultYear,
'Make' => $resultMake,
'Model' => $resultModel
);
当前您正在组合您的属性名称和值。