我正在使用一个名为register.php的PHP文件在数据库中注册新用户,其中一些数据来自注册表格,但是,数据库中的最后两个数据字段是两个默认的JSON对象。为此,我在注册按钮click事件的js文件中创建变量,然后使用JSON.stringify()与AJAX / JQuery发送该变量,如下所示:
除了AJAX / JQuery之外,我还尝试使用xmlhttp,创建请求并使用open(“ GET”,...),send(...)和以相同方式接收数据来发送数据在PHP文件上。两种方法最终都接收到空格,而不是JSON对象。
$("#registerButton").click(function(){
cards = {"idcards": [1,4,7,10,13,16,17,19,23,27,29,35,39,41,43,46,58,77,95,120]};
cardsJSON = JSON.stringify(cards);
$.ajax({
type: 'POST',
url: 'php_includes/register.php',
data: {cards: cardsJSON},
dataType: 'json'
});
});
这是PHP代码:
...
$freecards = $_POST['cards'];
...
#I'm omitting the other query values to simplify this.
$query = "INSERT INTO users VALUES ('{$freecards}')";
我希望收到的是与JS文件开头所声明的JSON对象相同的消息,而不是我要进入数据库的空白空间。
答案 0 :(得分:0)
通过$ _POST变量获取值-
JavaScript:
$("#registerButton").click(function(){
var cardsObj = {"idcards": [1,4,7,10,13,16,17,19,23,27,29,35,39,41,43,46,58,77,95,120]};
$.ajax({
type: 'POST',
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType : "json",
url: 'php_includes/register.php',
data: {cards: cardsObj},
success: function(data) {
console.log(data);
}
});
});
PHP:
$jsonString = $_POST['cards'];
$cardsJsonString = json_encode($jsonString);
header('Content-Type: application/json');
echo $cardsJsonString;
想要将JavaScript从JavaScript发送到PHP:
$.ajax({
type: 'POST',
contentType: "application/json",
dataType : "json",
url: 'php_includes/register.php',
data: {cards: cardsObj},
success: function(data) {
console.log(data);
}
});
PHP:
$jsonString = file_get_contents("php://input");
$phpObject = json_decode($jsonString);
$newJsonString = json_encode($phpObject);
header('Content-Type: application/json');
echo $newJsonString;
答案 1 :(得分:-1)
您需要在json_decode()
上使用$freecards
。
$freecards = json_decode($freecards, true);
答案 2 :(得分:-1)
您不需要JSON.stringify(cards)。您可以直接发送 cards ,而不是 cardsJSON 。
$.ajax({
type: 'POST',
url: 'php_includes/register.php',
data: {cards: cards},
dataType: 'json'
});