Php und JSON

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Php und JSON

    Hallo,

    also ich habe folgendes Problem. Ich führe ein Ajaxrequest aus und erstelle mit PHP aus einer SOAP Abfrage ein Array. Dieses gebe ich dann mit json_encode an Jquery zurück. Leider kann ich dann per jQuery nicht auf die Daten zugreifen.

    Code:
    $result = array();
             foreach ($tarife as $type => $properties) { 
                 foreach ($properties as $anbieter => $test) {                 
                    if($test['tarif_name'] == $tarifname) {                                       
                        $result[] = $test;
                    }                
                }
            }
            print_r (json_encode($result));
    So sieht das JSON aus:

    Code:
    [{"tariff_id":"4x2264229","provider":"vattenfall","working_price":"27.3000","base_price":"102.0000","bonus":"65.00","city":"Bremerhaven","tarif_name":"Easy Natur Privatstrom mit 12 Monaten Preisgarantie","usage_from":"0","usage_to":"100000"}]
    Es sind also einmal eckige Klammern und geschweifte Klammern drum. Wenn jetzt ich mit Jquery versuche das auszulesen, kommt immer als Wert "undefined".

    Wenn ich jetzt Array so generiere:

    Code:
    $arr = array ('item1'=>"I love jquery4u",'item2'=>"You love jQuery4u",'item3'=>"We love jQuery4u");
    $arr['item4'] = 'andre'; 
    echo json_encode($arr);
    So kann ich die Werte auslesen. Es sind allerdings auch keine eckigen und geschweifte Klammern drum.

    Was mache ich falsch???

    gruß

  • #2
    Wie sieht dein Javascript Code aus, mit dem Du versuchst den JSON String einzulesen?
    MM Newmedia | MeinBlog

    Kommentar


    • #3
      Code:
      success: function(data) {
                          //clickPHPtoJSResponse(data);
                          var response = jQuery.parseJSON(data);
                          alert(response.tariff_id);
                        }
      Wie gesagt, wenn ich mein Beispiel Array auslese, wird mir der Wert im Alert angezeigt.

      Kommentar


      • #4
        Du übergibst ja nicht nur ein Objekt, sondern ein Array von Objekten als JSON String. Die solltest also mit response[0].tariff_id drauf zugreifen können.
        MM Newmedia | MeinBlog

        Kommentar


        • #5
          Super danke schön.

          Kommentar


          • #6
            Eigentlich sollte parseJSON unnötig sein. Das übernimmt jQuery automatisch für dich. Zumindest wenn du mit PHP auch den richtigen Content Type setzt.

            Kommentar

            Lädt...
            X