已解决:此处发布的代码是正确的,但是连接到数据库的一些PHP代码需要修复,我现在正在使用它。我在评论中使用了 Quentin 的建议来解决我的问题。
我试图通过ajax将数组的JSON发送到PHP文件,然后运行php文件。这是我的ajax:
$('#submit').click(function() {
$.ajax({
method: "POST",
url: "submit.php",
data: {selectedImageArray: selectedImageArray}
}).done(function( msg ) {
alert( "Data Saved: " + selectedImageArray );
});
});
在我的PHP文件中,我连接到数据库,然后有:
$array = $_POST['selectedImageArray'];
$sql = $dbh->prepare("INSERT INTO pending_trades (steam_id, trade_items, is_giving, is_receiving, has_started) VALUES (:steamid, :itemlist, '1', '0', '0')");
$sql->bindParam(':steamid', $steamprofile['steamid']);
$sql->bindParam(':itemlist', $array);
$sql->execute();
我想要发送" selectedImageArray" json到php并按下这个按钮运行msql查询:
<button id="submit" class="button1" >Submit<span></span></button>
单击该按钮后,我会保存&#34;数据:array data
&#34;消息,但PHP代码不运行。为什么这不起作用?
编辑:我设置了data: {selectedImageArray: selectedImageArray}
而不是data: selectedImageArray
,因为有人告诉我它会变成JSON格式,这是正确的吗?
答案 0 :(得分:1)
你在数据库中添加一个数组而不是字符串试着使用:
$sql->bindParam(':itemlist', json_encode($array));
当您获得数据时:
$array = json_decode($itemlist);
答案 1 :(得分:-1)
您可以添加内容类型JSON。另外,它会将其视为文本。
var data = JSON.stringify({selectedImageArray: selectedImageArray});
$.ajax({
method: "POST",
dataType: 'json', // If your response is JSON
contentType: "application/json",
url: "submit.php",
data: data
}).done(function( msg ) {
alert( "Data Saved: " + selectedImageArray );
include ('submit.php');
});
答案 2 :(得分:-1)
首先看看你的浏览器调试器真正发送到php文件的内容。第二件事:您将向其发送JSON。这意味着,你有一个像这样的POST表单数组:
[{
"key1": "value1",
"key2": "value2"
}]
所以,总之这不起作用:
$array = $_POST['selectedImageArray'];
您需要访问e。 G。直接$_POST['key1']
。