gpt4 book ai didi

javascript - "SyntaxError: JSON.parse: unexpected character"将多个变量从 AJAX 传递到 PHP 时出错

转载 作者:行者123 更新时间:2023-11-30 08:40:35 25 4
gpt4 key购买 nike

我正在使用 AJAX 将变量从表单传递到 PHP 页面以处理数据库中的数据。

一旦用户点击按钮,它就会触发以下 JavaScript:

$(document).ready(function() {

$("#myForm").submit(function(event) {

/* validate the fields */
var firstDate= "11/10/2014"
var secondDate = "10/10/2014"
var myString = "some Text";
var myArray = ["name1", "name2", "name3", "123-123-33gf"];

processIT(firstDate, secondDate, muString, myArray);

});/* end of submit */

});

function processIT(firstDate, secondDate, muString, myArray) {
var response = "";
$(function () {
$.ajax({
url: 'api.php', // the script to call to get data
type: "POST",
data: {
firstDate: firstDate,
secondDate : secondDate ,
myString : myString ,
myArray : myArray ,
}, // you can insert url argumnets here to pass to api.php
dataType: 'json', // return data format
success: function(data) { //
alert(data);
},
error: function (jqXHR, textStatus, errorThrown){
console.log(textStatus, errorThrown);
},
});
});
return response;
}

api.php页面有以下内容

<?php 


if ( isset($_POST["firstDate"]) && !empty($_POST["firstDate"])){
$response .= "<p>firstDate= " . $_POST["firstDate"] . "</p>";
}
else $response .= " 1 ";
if ( isset($_POST["secondDate"]) && !empty($_POST["secondDate"])){
$response .= "<p>secondDate = " . $_POST["secondDate"] . "</p>";
}
else $response .= " 2 ";
if ( isset($_POST["myString"]) && !empty($_POST["myString"])){
$response .= "<p>myString = " . $_POST["myString"] . "</p>";
}
else $response .= " 3 ";
if ( isset($_POST["myArray"]) && !empty($_POST["myArray"])){
$response .= "<p>myArray = " . $_POST["myArray"] . "</p>";
}
else $response .= " 4 ";

echo json_encode($response);
?>

但是当我点击按钮时出现以下错误:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

但是如果我将 POST 更改为 GET,我可以看到传递的变量,但仍然会出现相同的错误。

知道我做错了什么吗?

最佳答案

您的 PHP 文件未输出有效的 JSON 响应,这就是 JSON.parse 引发错误的原因。您的 PHP 代码中存在许多错误,这些错误包含在输出中,因此产生了无效的 JSON 响应。

console.log("firstDate" + $_POST["firstDate"]);

这不是有效的 PHP 代码。 PHP 没有 console.log()。它有 echo。附言您使用 . 在 PHP 中连接字符串,而不是 +.

$_POST["secondDate "]
$_POST["myString "]
$_POST["myArray "]

这些键。最后没有空格。它们应该是:

$_POST["secondDate"]
$_POST["myString"]
$_POST["myArray"]

最后,$_POST["myArray"] 是一个数组。您不能将它连接到一个字符串。试试这个:

$response .= "<p>myArray = ".implode(', ', $_POST["myArray"])."</p>";

关于javascript - "SyntaxError: JSON.parse: unexpected character"将多个变量从 AJAX 传递到 PHP 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26853385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com