2017-04-04 177 views
0

我有jQuery的AJAX發送到PHP服務數據的數組:訪問多維數組PHP

requestAjax = jQuery.ajax({ 
      type: "POST", 
      url: "ajax/ajax.salva-valutazione.php", 
      data: {formdata:formdata, arrAccessori: arrAccessori}, 
     // data:formdata, 
      dataType: "json", 
      success: function(risposta){ 
       alert(".."+risposta); 
      } 
    }); 

在PHP響應頁我用,如果我做的所有數據的print_r:

error_log(print_r($arrValutazione, TRUE)); 

我得到了錯誤日誌:

[formdata] => nome=John&cognome=Doe&indirizzo=My+address&citta=London&user_name=fedepupo&clienteID=1 

雖然如果我做

error_log(print_r($arrValutazione['formdata'], TRUE)); 

我獲得

nome=John&cognome=Doe&indirizzo=My+address&citta=London&user_name=fedepupo&clienteID=1 

在錯誤日誌。

我的問題是如何direcly與

error_log(print_r($arrValutazione['formdata'][0]['cognome'], TRUE)); 

訪問諾姆,cognome(...)的值,因爲如果我嘗試做

error_log(print_r($arrValutazione['formdata']['cognome'], TRUE)); 

我得到 'N',也是我得到的相同的值'n'。

有什麼建議嗎?下面的代碼

回答

1

用它來獲得每個變量

parse_str($arrValutazione['formdata'],$output); 
print_r($output); 
$nome = $output['nome']; 
$cogname = $output['cogname']; 

的相若方式價值,你可以獲取任何變量的細節。

1

請嘗試下面的代碼,

parse_str($arrValutazione['formdata'],$formdata); 
error_log(print_r($formdata['cognome'], TRUE)); 

下面是引用鏈接,http://php.net/manual/en/function.parse-str.php

+0

它的工作原理!非常感謝! –

+1

正如@AkshayHegde在他的回答中所說的,你問題的原因是你沒有訪問一個數組,而是一個字符串。 – manian

2

在錯誤日誌。

我的問題是如何direcly訪問諾姆,cognome(...)值,因爲 如果我嘗試做

error_log中(的print_r($ arrValutazione [ 'FORMDATA'] [ 'cognome'],TRUE));

我得到 'N',並且還與

error_log中(的print_r($ arrValutazione [ 'FORMDATA'] [0] [ 'cognome'],TRUE));

我得到相同的值'n'。

$arrValutazione['formdata'] = 
nome=John&cognome=Doe&indirizzo=My+address&citta=London&user_name=fedepupo&clienteID=1 

原因是您正在訪問的字符串數組沒有,所以你總是得到n

這裏是演示

$ php -r '$string="abcdefgh"; 
    echo $string[0].PHP_EOL; 
    echo $string[2].PHP_EOL; 
    echo $string["unknown_index"].PHP_EOL;' 
a 
c 
PHP Warning: Illegal string offset 'unknown_index' in Command line code on line 4 
a