簡體   English   中英

無法將數組從jquery傳遞到php

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

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