簡體   English   中英

通過 POST 將數據從 javascript 傳遞到 PHP 不起作用

[英]Passing data from javascript to PHP via POST not working

我試圖將在客戶端使用 javascript 填充的數組發送到后端的 php 文件。

主文件

    var list = iterateItems();
  _ajax("https://127.0.0.1/prog1/final/class/ticket.php", list)
  .done(function(list){});
  });
  function _ajax(url,data) {
    var ajax = $.ajax({
      type : "POST",
      datatype : "string",
      url : url,
      data : data
    })
    return ajax;
  }
  
  
  function iterateItems() {
    // array is an array populated in this function, returned to be sent to ticket.php
    return JSON.stringify( array );
  };

門票.PHP

<?php
   var_dump(json_decode($_POST['list']));
?>

執行這個,我得到這個結果:

Notice: Undefined index: list in D:\127.0.0.1/prog1/final/class/ticket.php on line 2
NULL

我不明白為什么我會得到一個未定義的索引。 我嘗試使用谷歌搜索這個,但大多數響應似乎都指向使用某種 HTTPS 方法的方向,這就是我試圖通過 POST 實現的目標。 任何幫助將不勝感激。 謝謝你。

'list' 未定義問題可能是由於您傳遞的 JSON 數組的結構造成的。

嘗試下面的代碼並檢查它是否有效。 如果沒有,讓我們進一步檢查:)

 var list = {'list': iterateItems()}; _ajax("https://127.0.0.1/prog1/final/class/ticket.php", list) .done(function(list){}); }); function _ajax(url,data) { var ajax = $.ajax({ type : "POST", datatype : "json", url : url, data : data }) return ajax; } function iterateItems() { // array is an array populated in this function, returned to be sent to ticket.php return JSON.stringify( array ); };

您的 PHP 代碼:

<?php

   var_dump(json_decode($_POST['list']));

PHP 無法自動解析 JSON 參數。 $_POST只會從 URL 編碼的字符串或 FormData 對象中填充。

$.ajax將自動為您對數組進行 URL 編碼。

_ajax("https://127.0.0.1/prog1/final/class/ticket.php", array)
  .done(function(list) {});

function _ajax(url, data) {
  var ajax = $.ajax({
    type: "POST",
    dataType: "string",
    url: url,
    data: {list: data}
  })
  return ajax;
}

在 PHP 中,您不需要調用json_decode() $_POST['list']將是數組。

在調用var list = iterateItems(); 添加此list = 'list=' + list; php 文件然后會識別索引列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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