[英]Ajax won't send data to PHP
已解決:此處發布的代碼是正確的,但是連接到數據庫的某些 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>
單擊按鈕時,我收到“數據已保存: array data
”消息,但未運行 php 代碼。 為什么這不起作用?
編輯:我設置了data: {selectedImageArray: selectedImageArray}
而不是data: selectedImageArray
因為我被告知它變成了 JSON 格式,對嗎?
您正在數據庫中添加一個數組而不是字符串嘗試使用:
$sql->bindParam(':itemlist', json_encode($array));
當您獲取數據時,只需運行:
$array = json_decode($itemlist);
您可以添加內容類型 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');
});
首先看看你的瀏覽器調試器真正發送到 php 文件的內容。 第二件事:您將向它發送 JSON。 這意味着,您有一個像這樣的 POST 表單數組:
[{
"key1": "value1",
"key2": "value2"
}]
所以,總而言之,這不起作用:
$array = $_POST['selectedImageArray'];
您需要直接訪問例如$_POST['key1']
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.