jquery.当我在PHP中使用ECHO时,ajax to PHP失败


jquery.ajax to PHP fails when I use ECHO in my PHP

这是我第一次尝试使用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
);

当前您正在组合您的属性名称和值。