2016-05-03 5 views
0

Ich habe Probleme beim Senden multidimensionaler Array [N] [N] von Javascript zu PHP, ich habe bereits viele Lösungen ausprobiert, die ich hier gefunden habe, aber ich weiß nicht, was ich falsch mache.Senden eines mehrdimensionalen Arrays von Jquery an PHP. Was ich mache Falsch?

Mein JQuery-Code (Speicher Werte aus einer HTML-Tabelle):

$rowArray = {}; 

for ($i = 0; $i < $myRows.length; $i++) { 
    $row = $($myRows[$i]).find('td'); 
    $rowArray[$i] = {}; 
    for ($j = 0; $j < $row.length - 1; $j++) { 
     $rowArray[$i][$j] = $($row[$j]).html(); 
    } 
} 

Dann:

$myJsonString = JSON.stringify($rowArray); 

$.ajax({ 
    type: "POST", 
    url:"../../download/myStore.php", 
    data: { table: $myJsonString }, 
    success: function(data){ 
     console.log(data); 
    } 
}); 

PHP Seite:

echo $_POST['table']; //just to see what is coming, but i want to work as array 

//$data = json_decode($_POST['table'],true); -> when I echo $data, the output is an error Array to String conversion 

Ausgang:

{"0":{"0":"Cadastrado em","1":"Data da Venda","2":"Empreendimento","3":"Bloco/<br>Unidade","4":"Cliente/<br>Parceiro","5":"Valor","6":"Filial","7":"Gerente","8":"Corretor","9":"Veículo"},"1":{"0":"27/04/2016","1":"11/04/2016","2":"Villa Flora Hortolândia - Cond. 06","3":"Bloco/Torre: 13, Unidade: 283","4":"Lidiane Sasaki Santana","5":"20.664.259","6":"Campinas","7":"NATAL","8":"WILLIAM PILOTO","9":"Internet"},"2":{"0":"12/04/2016","1":"12/04/2016","2":"Lifespace Curitiba","3":"Bloco/Torre: 1, Unidade: 2404","4":"ANA","5":"351.000","6":"Curitiba","7":"André Barbosa de Lima","8":"Daniele","9":"Google"},"3":{"0":"12/04/2016","1":"12/04/2016","2":"ROSSI ATUAL MORADA","3":"Bloco/Torre: 3, Unidade: 407","4":"BERNADETE STARKE","5":"245.000","6":"Curitiba","7":"André Barbosa de Lima","8":"Dranka","9":"Google"},"4":{"0":"12/04/2016","1":"12/04/2016","2":"Lifespace Curitiba","3":"Bloco/Torre: 2, Unidade: 1105","4":"FLAVIA AMARAL","5":"272.500","6":"Curitiba","7":"André Barbosa de Lima","8":"Jesus","9":"Yahoo"},"5":{"0":"12/04/2016","1":"12/04/2016","2":"Lifespace Curitiba","3":"Bloco/Torre: 2, Unidade: 1809","4":"itajana","5":"270.500","6":"Curitiba","7":"André Barbosa de Lima","8":"Daniele","9":"Site Rossi"},"6":{"0":"27/04/2016","1":"14/04/2016","2":"Villa Flora Hortolândia - Cond. 05","3":"Bloco/Torre: 5, Unidade: 41","4":"Andre Fernando Da Silva Gradino","5":"184.303","6":"Campinas","7":"NATAL","8":"TIAGO","9":"Cadastro Manual"}} 

Wie kann ich auf jeden Index in jedem Array zugreifen, um meine Werte zu erhalten?
Immer wenn ich versuche, einen Index wie $_POST['table'][0] zu verwenden, ist der Ausgang nur '{'.
Sorry für mein Englisch und Entschuldigung für diese noob Frage, aber ich bin hier stundenlang stecken geblieben und habe schon eine Menge Lösung hier und auf Google versucht.

+0

Mögliche Duplikat [Parse JSON-String Inhalt in PHP Array] (http://stackoverflow.com/questions/13600024/parse-json- String-Inhalt-in-PHP-Array) – lolbas

Antwort

1

Verwenden Sie json_decode, um das String-Literal in ein PHP-Objekt umzuwandeln.

$json = '["apple","orange","banana","strawberry"]'; 
$ar = json_decode($json); 
// access first element of $ar array 
echo $ar[0]; // apple 
2

Wie Sie bereits in Ihrem Code haben (aber auf Kommentar) Sie json_decode($_POST['table'],true); Wenn Sie uns mit dieser Funktion ein Array erhalten, mit 7 entrys (in diesem Beispiel) verwenden können.

So:

$data = json_decode($_POST['table'], true); 

Der Fehler tritt auf, weil Sie die Variable echo. Verwenden Sie var_dump($data) um zu sehen, dass es wirklich ein Array ist. $data[0], $data[1], ... hält dann die Daten.

EDIT: Weil Sie Array verschachtelt haben, müssen Sie wieder das Sub-Array zuzugreifen, wie folgt aus:

$data = json_decode($_POST['table'], true); 
$var = $data[0][0]; // holds "Cadastrado em" 
$var2 = $data[0][1]; // holds "Data da Venda" 

Ich bin nicht sicher, ob dies beabsichtigt ist, dass Sie in einem Array ein Array haben.

+0

Omg, es funktioniert, Entschuldigung für die noob Frage, ich war stundenlang stecken. Wirklich Danke! – Shermano

-1

Ihre kommentierte Linie

$data = json_decode($_POST['table'],true); 

ist gut, aber man kann nicht ein Array Echo. Dies wird fehlschlagen:

echo $data; 

Dies funktioniert:

print_r($data); 
Verwandte Themen