Kal*_*nka 1 javascript php forms variables ajax
我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
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);
?>
Run Code Online (Sandbox Code Playgroud)
但是,当我单击该按钮时,我收到以下错误:
SyntaxError:JSON.parse:JSON数据的第1行第1列的意外字符
但是,如果我将POST更改为GET,我可以看到传递的变量,但仍然会得到相同的错误.
我有什么想法我做错了吗?
您的PHP文件未输出有效的JSON响应,这JSON.parse就是抛出错误的原因.PHP代码中存在许多错误,这些错误包含在输出中,从而产生无效的JSON响应.
console.log("firstDate" + $_POST["firstDate"]);
Run Code Online (Sandbox Code Playgroud)
这不是有效的PHP代码.PHP没有console.log().它有echo.PS你.用来连接PHP中的字符串,而不是+.
$_POST["secondDate "]
$_POST["myString "]
$_POST["myArray "]
Run Code Online (Sandbox Code Playgroud)
这些钥匙.最后没有空间.他们应该是:
$_POST["secondDate"]
$_POST["myString"]
$_POST["myArray"]
Run Code Online (Sandbox Code Playgroud)
最后,$_POST["myArray"]是一个数组.您无法将其连接到字符串.试试这个:
$response .= "<p>myArray = ".implode(', ', $_POST["myArray"])."</p>";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
765 次 |
| 最近记录: |