2016-07-27 14 views
0

Ich habe einige Probleme in der Lage zu sehen, die Array-Variablen in PHP widerhallen, habe ich viele Dinge ausprobiert, und ich weiß, dass das Array an die PHP-Datei über gesendet wird JSON und in einer stringify-Version.JSON AJax PHP kann keine Daten in PHP anzeigen

kann ich die Daten in eine Protokolldatei schreiben und die Daten, die für die Variable in der Datei angezeigt wird: $ datastripped wird wie folgt

{"supplements":[{"supplement":"1","dose":"2","dosewieght":"mg"}]} 

die Variable $ data schreibt nicht in die Protokolldatei nicht Egal wie ich es code.

Ich habe versucht, $ Daten, $ Daten [0], $ Daten [0] ['Ergänzung'], $ Daten ['Ergänzungen'] ['Ergänzung'] und viele andere Kombinationen.

Die Informationen, die ich auf JSON gefunden habe und die für andere gearbeitet haben, scheint nicht für mich zu arbeiten.

*** I dies auch innerhalb Wordpress tue, sondern überprüft haben, dass die Daten korrekt an die PHP-Funktion wird immer, kann aber nicht Echo einzelne Elemente aus

Hier ist die Javascript:

var supplist = {supplements:[]}; 
supplist.supplements.push({supplement:supplement, dose:dose, dosewieght:doseweight}); 

$("#supplementsave").click(function(){ 
    var jsonsupparray = JSON.stringify(supplist); 


     event.preventDefault(); 
     jQuery.ajax({ 
       type: "POST", 
       dataType:"JSON", 
       url: myajax.ajax_url, 
       data:{ 

         data:jsonsupparray, 
         action: "addsupplements"    
       }, 
       cache:false, 
       success: function(data){ 
       console.log("success"); 
       }, 

    }); 
Hier

ist die PHP:

$datastripped =stripslashes($_POST['data']); 

$data = json_decode($datastripped, true); //Data Not Beign shown 

foreach($data as $value){ 

echo $value['supplement']; 

} 
+0

Gibt es einen bestimmten Grund für die Verwendung von '.stringify()'? Kommentieren Sie diese Zeile und kommentieren Sie die Zeilen mit 'stripslashes()' und 'json_decode()'. Dies sollte Ihr Problem lösen. – MonkeyZeus

Antwort

1

einfach es

<?php 
    $datastripped = '{"supplements":[{"supplement":"1","dose":"2","dosewieght":"mg"}]}'; 
    $data = json_decode($datastripped, true); 
    // print_r($data['supplements']); 
    foreach ($data['supplements'][0] as $key => $value) { 
     echo $key.' '.$value.'<br>'; 
    } 
?> 

Sie

supplement 1 
dose 2 
dosewieght mg 

bekommen Wenn Sie einen Parameter

rufenden
echo $data['supplements'][0]['supplement']; 
echo $data['supplements'][0]['dose']; 
echo $data['supplements'][0]['dosewieght']; 
3

Sie müssen auch einfache Anführungszeichen setzen, wenn Sie Daten in Ihrem supplist drücken.

supplist.supplements.push({'supplement':'supplement', 'dose':'dose', 'dosewieght':'doseweight'}); 

Ansonsten wirft es JavaScript-Fehler, dass Ergänzung nicht definiert ist, da es als Ergänzung Variable behandelt, nicht als eine Zeichenkette.

Jetzt in Ihrem PHP-Code Sie müssen dekodieren und Ihre JSON und iterieren.