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