簡體   English   中英

Ajax 不會向 PHP 發送數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM