我有一个 AJAX 脚本,可以在我的 PHP 文件之一中发布数据:
var _lname = $('#ptLastName').val();
var _fname = $('#ptFirstName').val();
var _mname = $('#ptMiddleName').val();
$.ajax({
type: "POST",
url: ".././CheckPerson.php",
data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var res = response.d;
if (res == true) {
jAlert('Person Name already exists!', 'Error');
return;
}
它工作正常,我可以看到 Firebug 控制台中发布的 JSON 数据。问题出在这段 PHP 代码上:
$firstname = json_decode($_POST['firstName']);
$lastname = json_decode($_POST['lastName']);
$middlename = json_decode($_POST['middleName']);
$response = array();
上面的PHP代码似乎无法识别'firstName'
,'lastName'
, and 'middleName'
作为发布的 JSON 参数,并返回Undefined index: firstName in C:...
对于所有发布的参数都是类似的。
我也尝试过使用$data = $_POST['data']
and $_REQUEST['data']
获取所有 JSON 参数并使用以下命令对其进行解码json_decode($data);
但没有用。
我还使用了 AJAX 缩短的代码来发布$.post('.././CheckPerson.php', {data: dataString}, function(res){ });
,它与我的 PHP 文件配合得很好,我的 PHP 文件现在可以读取lastName
, firstName
, and middleName
,但我认为它不是 JSON 数据,而只是文本数据,因为 firebug 无法将其读取为 JSON 数据。现在,我很困惑我的 PHP 文件如何读取 JSON 数据参数。你们对此有什么建议吗?