这是我第一次尝试使用AJAX - 当用户离开特定表单字段(VIN)时,我的网站需要在运行时调用PHP。我将此字段的值传递给PHP函数以进行验证和处理。那么PHP应该为3个不同的表单字段返回3个值。 这是我的问题:我没有将3个值恢复到我的javascript中。
每次当我在我的php中使用ECHO json_encode时,AJAX调用崩溃并且控制台显示" VM7190:1未捕获的SyntaxError:位于0(...)"的JSON中的意外的标记Y。
如果我在我的PHP中放置任何其他简单的ECHO,则AJAX调用将返回错误。
如果我从PHP中删除每个ECHO,则AJAX调用返回成功但返回的数据为NULL。
如果我能在这里找到解决这个问题的方法,那就太棒了。
如果有人想测试网站 - 这是网址:mycarbio
非常感谢。
这是我的AJAX电话:
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
&#13;
这是我的PHP
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"); }
});
}
&#13;
答案 0 :(得分:1)
这可能不是您唯一的问题,但在渲染JSON时应尝试使用关联数组:
$vinResult = array(
'Year' => $resultYear,
'Make' => $resultMake,
'Model' => $resultModel
);
目前,您正在组合您的媒体资源名称和值。