[英]unable to pass array from jquery to php
我需要將數組從jquery傳遞到php進行處理。 我創建這樣的數組對象
function Bet(eventId,pick,odds,stake,profit,betType){
return {
eventId:eventId,
pick:pick,
odds:odds,
stake:stake,
profit:profit,
betType:betType
}
在我的提交處理程序中,我有這段代碼
var bets = {};
$(".bet-selection").each(function() {
/**
some logic here
**/
}
});
bets.push(Bet(eventId,pick,odds,stake,profit,betType));
});
$.ajax({
url: 'testsubmit.php',
cache: false,
type: 'post',
data: bets
});
我提交表格時沒有任何反應。 我希望將數組提交給php,我可以使用print_r來查看結構。 拜托大家我在做什么錯了,在哪里? 謝謝。
AJAX會將數據發送到外部文件,您將無法看到輸出。 這就是為什么在提交表單時什么都看不見的原因。 也許如果您有PHP腳本通過電子郵件向您發送數據,則可以檢查數據是否正確傳遞。
首先,您的代碼在語法和語義上都是錯誤的。 我用“ <----”標記了錯誤的位置
function Bet(eventId,pick,odds,stake,profit,betType){
return ({
eventId:eventId,
pick:pick,
odds:odds,
stake:stake,
profit:profit,
betType:betType
});
} <------
var bets = {};
$(".bet-selection").each(function() {
/**
some logic here
**/
}
bets.push(Bet(eventId,pick,odds,stake,profit,betType)); <--- I guess this should be inside the loop, right?
});
現在,您不能只發布這樣的Javascript對象。 最好的選擇是將它們編碼為JSON(JavaScript對象表示法),實際上將它們編碼為JS對象:)
現代瀏覽器包括JSON解析器/編碼器,但較舊的瀏覽器則沒有。 因此,請包含以下庫,以確保較舊的瀏覽器不會損壞: https : //github.com/douglascrockford/JSON-js
接下來,您需要修改一些代碼:
$.ajax({
url: 'testsubmit.php',
cache: false,
type: 'post',
data: { bets : JSON.stringify(bets)}
});
在PHP方面,使用json_decode函數將JSON字符串解碼為對象的PHP數組。
<?php
$bets = json_decode($_POST['bets']);
var_dump($bets);
美好的一天。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.