Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!

Jetzt kostenlos registrieren

Javascript PHP JSON - Alles zusammen

Fragen zum Thema JavaScript können hier gestellt werden

Moderatoren: Basti, Guillermo, Ingo

Javascript PHP JSON - Alles zusammen

Beitragvon Hoerti am 04.11.2011, 15:28

Hallo zusammen!
Ich arbeite momentan an einer Webseite und stehe nun vor einem Problem, das eigentlich nicht so schwer sein kann.
Und zwar bekomme ich von search_new.php folgendes JSON zurück:

Code: Alles auswählen
{"Data":{"Recipes":{"Recipe_5":{"ID":"5","TITLE":"Spaghetti Bolognese"},"Recipe_7":{"ID":"7","TITLE":"Wurstel"},"Recipe_9":{"ID":"9","TITLE":"Schnitzel"},"Recipe_10":{"ID":"10","TITLE":null},"Recipe_19":{"ID":"19","TITLE":null},"Recipe_20":{"ID":"20","TITLE":"Hundefutter"},"Recipe_26":{"ID":"26","TITLE":"Apfelstrudel"},"Recipe_37":{"ID":"37","TITLE":null},"Recipe_38":{"ID":"38","TITLE":"AENDERUNG"},"Recipe_39":{"ID":"39","TITLE":null},"Recipe_40":{"ID":"40","TITLE":"Schnitzel"},"Recipe_42":{"ID":"42","TITLE":"Release-Test"},"Recipe_43":{"ID":"43","TITLE":"Wurstel2"}}},"Message":null,"Code":200}


In der Javascript-Funktion möchte ich nun so darauf zugreifen:

Code: Alles auswählen
   <script type="text/javascript">
   function test() {
         //var availableTags = new Array(400);
         //availableTags[0] = "Test";
         alert("misstake");
         var availableTags =  new Array();
         alert(availableTags.length);
         for(int i = 0; i<5; i++){
            availableTags[i] = <?php include("php/search_new.php"); ?>;
         }
         
         
         alert("Test");
         for(var i=0;i<5;i++){
            alert("<b>availableTags["+i+"] is </b>=>"+availableTags[i]+"<br>");
         }
         alert("Hallo");
      }
   </script>


Mein Problem ist, das ich für availableTags.length 0 erhalte und in der for-schleife für availableTags[i] "undefined".
Das es daran liegt, dass das availableTags-Array das alles nicht richtig verarbeiten kann, ist mir klar. Unklar ist mir aber, wie ich das "parsen" könnte. Was ich will ist, dass in availableTags[0] das erste JSON-Rezept drinnensteht, in availableTags[1] das zweite usw.

Hoffe es ist einigermaßen klar was ich meine, ich bitte um Eure Hilfe :)
Mfg Hörti
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00
Diese Anzeige ist nur für
Nicht-Mitglieder sichtbar!
 
Jetzt kostenlos registrieren

Re: Javascript PHP JSON - Alles zusammen

Beitragvon my-webdesigner.com am 04.11.2011, 16:11

Hallo Hörti,

mir ist noch nicht ganz klar, was du mit der for-Schleife bezwecken möchtest, von Syntaxfehlern im JS-Code abgesehen.

Code: Alles auswählen
availableTags = <?php include("php/search_new.php"); ?>;

availableTags enthält nun dein Object. Zugreifen kannst du darauf z.B. so:
Code: Alles auswählen
availableTags.Data.Recipes["Recipe_5"]


Was möchtest du damit anfangen und wozu soll die Schleife dienen?

Grüße,
Gerald
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: Javascript PHP JSON - Alles zusammen

Beitragvon Hoerti am 04.11.2011, 16:19

Erstmals Danke für deine schnelle Antwort!
Ich dachte mir das so, dass ich jedes Rezept einzeln einlesen muss, das war ein blöder Denkfehler, danke fürs Ausbessern.

Ich möchte alle Rezepte in einem Array haben, damit ich dann den Namen des Rezepts in einer Textbox anzeigen kann. Bzw. möchte ich etwas in einer Textbox eingeben und mit jquery autosuggest die Namen der Rezepte dann anzeigen lassen.

Wenn ich, wie du sagst,

Code: Alles auswählen
alert(availableTags.Data.Recipes["Recipe_5"]);


verwende, bekomme ich jediglich "[object Object]"... woran kann das denn liegen?
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: Javascript PHP JSON - Alles zusammen

Beitragvon Guillermo am 04.11.2011, 17:10

Da fehlt noch eine Ebene:
Code: Alles auswählen
alert(availableTags.Datxa.Recipes.Recipe_5["ID"]);
alert(availableTags.Data.Recipes.Recipe_5["TITLE"]);
Gebildet ist der, der weiß, wo er findet, was er nicht weiß.
Benutzeravatar
Guillermo
Moderator
 
Beiträge: 1093
Registriert: 01.10.2007, 18:18
Wohnort: Bayern

Re: Javascript PHP JSON - Alles zusammen

Beitragvon Hoerti am 04.11.2011, 17:27

Ok, spitze, danke!

Also wie oben schon geschrieben, möchte ich alle Rezeptnamen in einem Array haben. Wie kann ich das denn am besten umsetzen?
Mit einer for-Schleife geht es ja leider nicht, da die Recipes-ID bei 5 anfängt und nicht jede ID belegt ist.

Gibt es da sonst noch einen Weg?
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: Javascript PHP JSON - Alles zusammen

Beitragvon my-webdesigner.com am 04.11.2011, 19:09

Was spricht dagegen, das Object, bevor es zum JSON-Object wird, bereits in PHP richtig auszugeben?
Wenn du nur die Namen benötigst, lass doch lieber nur die Namen ausgeben.

Ansonsten geht das so:
Code: Alles auswählen
var allRecipes = (<?php include("php/search_new.php"); ?>).Data.Recipes;
var recipeNames = [];
for(var i in allRecipes) {
    recipeNames.push(allRecipes[i].TITLE);
}


recipeNames ist nun ein Array, das die Namen aller Rezepte enthält.
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien

Re: Javascript PHP JSON - Alles zusammen

Beitragvon Hoerti am 04.11.2011, 20:15

Wow, so einfach?

Einfach klasse Leute, vielen Dank!
Hoerti
Mitglied
 
Beiträge: 28
Registriert: 20.05.2011, 16:00

Re: Javascript PHP JSON - Alles zusammen

Beitragvon my-webdesigner.com am 04.11.2011, 22:30

Hoerti hat geschrieben:Wow, so einfach?

Ja ;) JavaScript ist meiner Meinung nach auch eine der angenehmsten Sprachen.

No problemo - Falls es noch was gibt, einfach noch mal melden :thumbsup:
Benutzeravatar
my-webdesigner.com
Mitglied
 
Beiträge: 656
Registriert: 20.04.2010, 12:42
Wohnort: Wien


Zurück zu JavaScript

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast