PHP Array zu JS Array

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • PHP Array zu JS Array

    Hallo erst einmal,
    danke das ihr euch Zeit nehmt das hier zu lesen.
    Ich habe ein etwas nerviges Problem mit PHP in Kombination mit JS.
    Dazu muss ich sagen ich bin echt schlecht was JS angeht.
    In meinem Projekt muss ich eine Googlemaps Karte mit shops anzeigen lassen.
    Mein Problem fängt schon dabei an das ich bei der Übergabe der Werte von PHP zu JS scheitere.

    Hier einmal ein paar Beispiele wie mein Array aufgebaut ist:
    (ich lasse das array $shops aus einer anderen File übergeben, klappt alles wunderbar mi der Ausgabe in HTML)

    Quellcode

    1. $shops['0']['name']="ein Name";
    2. $shops['0']['oef']['0']=array(
    3. 'tag'=> 'montag',
    4. 'start'=>07.45,
    5. 'ende'=>15.45
    6. );//kann auhc oef 1 2 3 usw. sein
    7. $shops['0']['support']['0']='Information';
    8. $shops['0']['support']['1']='Austausch von Geräten';
    9. $shops['0']['strasse']='weg der welt';
    10. $shops['1']['name']="kkkkein Name";
    11. /******
    12. usw.
    13. anzahl der shops ist nicht bekannt!
    14. genau wie anzahl der Supportoptionen!
    15. ******/
    Alles anzeigen


    So ich weiss wie ich in PHP darauf zugreife, aber nicht wie ich das in JS mache.
    Ich möchte das genau so als array übergeben, also mehrdimensinal, der zweck sollte auf der hand liegen wenn man das Bsp. gesehen hat.

    also sprich ich will einzeln dann am Ende in JS so darauf zugreifen können:

    var name2=$shops['1']['name'];
    also soll das da drinne stehen wne n ich es ausgebe:
    "kkkkein Name"

    Ich hoffe ihr habt verstanden was ich suche und ich bekomme schnell hilfe.
    Und das was JSOn angeht habe ich schon gefunden werde aber nicht schlau draus.
    es wäre sehr soll wenn ihr ein Beispiel code dazu schreiben könntet :)


    P.S. Mir fällt noch ein gibt es bei JS sowas wie die Vorschleife in PHp das ich das array dnan einmal simpel durchlaufen lassen kann?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bloodydiary ()

  • Hi,
    hast du unseren Wiki Artikel dazu hast du gesehen? [wiki]JSON: PHP und JavaScript[/wiki]
    Ich denke Kapitel 4 sollte alles klären

    LG

    Quellcode

    1. <?php
    2. $json = json_encode($shops);
    3. ?>
    4. <script type="text/javascript">
    5. // JavaScript Datenerhebung
    6. var json = '<?= $json ?>';
    7. // Brücke zwischen PHP und JavaScript (clientseitig)
    8. var data = eval('(' + json + ')');
    9. // JavaScript Daten ausgeben
    10. for(var row in data) {
    11. var row = data[row];
    12. document.writeln(row['firstname']);
    13. document.writeln("<ul>");
    14. for(var url in row['websites']) {
    15. url = row['websites'][url];
    16. document.writeln("<li>"+url+"</li>");
    17. }
    18. document.writeln("</ul>");
    19. }
    20. </script>
    Alles anzeigen
  • Erstmal danke Herr Administrator für ihren Beitrag.

    Ich hab jetzt mal ihren Code 1:1 getetstet.



    Und ich muss sagen ich habe keinen Plan was da genau steht.
    Ich hab immer Probleme mich mit JS zu befassen.
    Achso und nur damit ichs besser verstehe,
    ich kann doch Theoretisch statt roe auch blaubeere oder auto hinschreiben udn das sollte laufen?
    genau wie bei data?
    Hier einmal meine 2 Beispiel arrays in PHP:

    Quellcode

    1. Array
    2. (
    3. [0] => Array
    4. (
    5. [name] => 0name
    6. [entfernung] => 0entfernung
    7. [lat] => 0lat
    8. [lon] => 0lon
    9. [strasse] => 0strasse
    10. [hnr] => 0hnr
    11. [plz] => 0plz
    12. [ort] => 0ort
    13. [oef] => Array
    14. (
    15. [0] => Array
    16. (
    17. [tag] => 00tag
    18. [start] => 0
    19. [ende] => 0
    20. )
    21. [1] => Array
    22. (
    23. [tag] => 01tag
    24. [start] => 1
    25. [ende] => 1
    26. )
    27. [2] => Array
    28. (
    29. [tag] => 02tag
    30. [start] => 2
    31. [ende] => 2
    32. )
    33. [3] => Array
    34. (
    35. [tag] => 03tag
    36. [start] => 3
    37. [ende] => 3
    38. )
    39. )
    40. [support] => Array
    41. (
    42. [0] => beratung
    43. [1] => geraete tausch
    44. [2] => modem test
    45. )
    46. )
    Alles anzeigen



    Und als ausgabe bekomme ich das hier:

    Quellcode

    1. 0name
    2. [object Object][object Object][object Object][object Object]
    3. 1name
    4. [object Object][object Object][object Object][object Object]


    Und hier nochmal kurz der Teil wo es noch Harkt, musst schn firstname zu name umändern da das nur der NAME DES SHOPS ist.

    Quellcode

    1. for(var row in data) {
    2. var row = data[row];
    3. document.writeln(row['name']);
    4. document.writeln("<ul>");
    5. for(var url in row['oef']) {
    6. url = row['oef'][url];
    7. document.writeln("<li>"+url+"</li>");
    8. }
    9. document.writeln("</ul>");
    10. }


    Also ich verstehs jetzt schon teils besser nachdem ich den Code hier gesehen habe und das einmal lie.
    dafür schon mal danke udn danke im Vorraus für die Antwort ;)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Bloodydiary ()

  • PROBLEM GELÖST

    das problem war das es ein mehrdimensionales Array in einem merhdimensionalen Array war.
    Lösung:

    Quellcode

    1. for(var row in data) {
    2. var row = data[row];
    3. document.writeln(row['name']);
    4. document.writeln("<ul><li>"+row['entfernung']+"</li><li>"+row['lat']+"</li><li>"+row['lon']+"</li><li>"+row['strasse']+"</li><li>"+row['hnr']+"</li><li>"+row['plz']+"</li><li>"+row['ort']+"</li>");
    5. document.writeln("<ul>");
    6. for(var nummer in row['oef']) {
    7. inhalt = row['oef'][nummer];
    8. document.writeln("<li>"+inhalt['tag']+"-"+inhalt['start']+"-"+inhalt['ende']+"</li>");
    9. }
    10. document.writeln("</ul></ul>");
    11. }
    Alles anzeigen


    Trotzdem dürft ihr gerne meine anderen Fragen noch beantworten :P
    Ich weiss zwar jetzt wie ich es übergebe aber noch nicht die anderen Sachen :)