2016-09-29 67 views
-1

我試圖將數組的值傳遞給php,但我無法獲取值。它返回NULL,當我使用的var_dump()返回陣列(1){[0] =>串(0) 「」}陣列([0] =>)從javascript代碼傳遞數組值到php

這裏的代碼:

$("#submit").click(function() { 
    var newhour= []; 
    for (var i = 0; i < arrayNumbers.length; i++) { 
     newhour.push(arrayNumbers[i].toString().split(',')); 
     console.log("each: " + newhour[i]); // output: each: 07:00,08:30 
                 each: 18:00,19:00             
    } 
    console.log("all: " + newhour); //output: all: 07:00,08:30,18:00,19:00 

    var jsonx = JSON.stringify(newhour); 
    console.log("x: " +jsonx); // output: x: [["07:00","08:30"],["18:00","19:00"]] 
    $.ajax({ 
     type: "POST", 
     url: "hour.php", 
     data:{data: jsonx}, 
     cache: false, 
     success: function(){ 
        alert("OK"); 
     } 
    }); 
}); 

hour.php文件包括:

$data = json_decode($_POST['data'],true); 
//$data = json_decode(($_POST['data'])); 
//$data = explode(",", $_POST['data']); 
//$data = $_POST['data']; 
    echo "data: " .$data; 
    var_dump($data); 
    foreach($data as $d){ 
     echo $d; 
    } 

我與掙扎了幾個小時,我什麼都試過,但不能得到任何價值。 我不明白我錯在哪裏。 你能幫我用我的代碼嗎? 在此先感謝。

+1

可你只需要使用的print_r($ _ POST [「數據」]);並在這裏粘貼輸出? –

+0

@SachinVairagi它不會返回任何東西。我不知道爲什麼。 – Ozzlem

+0

查看您的瀏覽器的調試工具的網絡檢查器,並查看準確的原始HTTP請求,對於初學者。 – deceze

回答

0

它工作正常,我 這是我用來arrayNumbers

數據

var arrayNumbers = [1, 591, 283, 12];

這是返回的數據

data: Arrayarray(4) { [0]=> array(1) { [0]=> string(1) "1" } [1]=> array(1) { [0]=> string(3) "591" } [2]=> array(1) { [0]=> string(3) "283" } [3]=> array(1) { [0]=> string(2) "12" } } ArrayArrayArrayArray

編輯:只是嘗試了幾種不同arrayNumbers的值。當我使用var arrayNumbers = [""];時,我得到了確切的回報。檢查你正在使用什麼值,因爲這是問題。

注:我也不得不註釋掉each: 18:00,19:00,但我假設你已經有這樣的評論,並將它複製錯誤