king_and1 Geschrieben 27. Mai 2013 Geschrieben 27. Mai 2013 Hallo und willkommen und zu meiner (für fortgeschrittene leichte Frage ;P) Ich hab einen ajax call gebaut welcher durch einen button gesteuert wird. Ich hätte einmal diesen Request hier : function myCall() { var serialno= document.getElementById('answer344354X45X249SQ001').value; var Url = "http://10.1.12.136/lime/SerialNo.php?serial="+serialno; var request = $.ajax({ url: Url, type: "GET", dataType: "xml", success: onSerialNoCheckComplete, }); function onSerialNoCheckComplete(xml) { alert('HI'); $(xml).find('Details').each(function(){ var model = $(this).find('ModelNumber').text(); alert (productname + model); $("#question91 input.radio:first").click(); }); Nun möchte ich das nach dem letzten alert dieser request automatisch weitergeführt wird: (Aber mit der model variablen aus dem vorigen request) Hoffe mir kann da jemand weiter helfen :// function Product () { var Url = "http://10.1.12.136/lime/Product.php?serial="+serialno+"&model="+model; var request2 = $.ajax ({ type: "GET", dataType: "xml", success: Check, }); function Check(xml) { alert('HI2'); $(xml).find('ProductDetails').each(function(){ var productname = $(this).find('ProductName').text(); var name = $(this).find('ProductCategory').text(); var date = $(this).find('PurchaseDate').text(); alert (productname + name + date ); $("#question91 input.radio:first").click(); }); }; }; }; </script> Zitieren
Tom87 Geschrieben 27. Mai 2013 Geschrieben 27. Mai 2013 afo: Das ist kein JAVA. Rück bitte deinen Code ein, so ist das ganze ziemlich schlecht zu lesen. Zitieren
SaJu Geschrieben 27. Mai 2013 Geschrieben 27. Mai 2013 Informier Dich mal über das Aufrufen von Funktionen mit Javascript unter Ajax. Zitieren
flashpixx Geschrieben 27. Mai 2013 Geschrieben 27. Mai 2013 Thema verschoben, bitte Code-Tags verwenden Zitieren
king_and1 Geschrieben 28. Mai 2013 Autor Geschrieben 28. Mai 2013 Hallo , weiss jemand wieso das so nicht funktioniert ? :/ <script> function myCall() { var serialno= document.getElementById('answer344354X45X249SQ001').value; var Url = "http://10.1.12.136/lime/SerialNo.php?serial="+serialno; var request = $.ajax({ url: Url, type: "GET", dataType: "xml", success: onSerialNoCheckComplete, }); function onSerialNoCheckComplete(xml) { alert('HI'); $(xml).find('ArrayOfDetails').each(function(){ var model = $(this).find('ModelNumber').text(); if (model !== null) { alert (model); function Product() { var serialno= document.getElementById('answer344354X45X249SQ001').value; var modelno= model; var Url = "http://10.1.12.136/lime/Product.php?serial="+serialno+"&model="+modelno; var request2 = $.ajax2({ url: Url, type: "GET", dataType: "xml", success: Productdetails, }); function Productdetails(xml) { alert('HI2'); $(xml).find('ProductDetails').each(function(){ var productname = $(this).find('ProductName').text(); var name = $(this).find('ProductCategory').text(); var date = $(this).find('PurchaseDate').text(); alert (productname + name + date ); $("#question91 input.radio:first").click(); }); }; }; $("#question91 input.radio:first").click(); } else { alert ('fail'); } }); }; }; </script><input onclick="myCall()" type="button" value="Check" /> Zitieren
Klotzkopp Geschrieben 28. Mai 2013 Geschrieben 28. Mai 2013 weiss jemand wieso das so nicht funktioniert ? :/ Bitte Code-Tags verwendenBitte liefere eine brauchbare Fehlerbeschreibung ab. "Funktioniert nicht" hilft nicht weiter. Zitieren
king_and1 Geschrieben 28. Mai 2013 Autor Geschrieben 28. Mai 2013 Hallo , weiss jemand wieso das so nicht funktioniert ? :/ <script> function myCall() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var Url = "http://10.1.12.136/lime/SerialNo.php?serial="+serialno; var request = $.ajax({ url: Url, type: "GET", dataType: "xml", success: onSerialNoCheckComplete, }); function onSerialNoCheckComplete(xml) { alert('HI'); $(xml).find('ArrayOfDetails').each(function(){ var model = $(this).find('ModelNumber').text(); if (model !== null) { alert (model); function Product() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var modelno= model; var Url = "http://10.1.12.136/lime/Product.php?serial="+serialno+"&model="+modelno; var request2 = $.ajax2({ url: Url, type: "GET", dataType: "xml", success: Productdetails, }); function Productdetails(xml) { alert('HI2'); $(xml).find('ProductDetails').each(function(){ var productname = $(this).find('ProductName').text(); var name = $(this).find('ProductCategory').text(); var date = $(this).find('PurchaseDate').text(); alert (productname + name + date ); $("#question91 input.radio:first").click(); }); }; }; $("#question91 input.radio:first").click(); } else { alert ('fail'); } }); }; }; </script><input onclick="myCall()" type="button" value="Check" /> Also wie man oben ja sieht, werden hier 2 verschiedene Requests aufgerufen, welche auch 2 verschiedene Php´s ansprechen. Mein Ziel ist es , dass der erste Request sich vom Textinput die Eingabe nimmt , diese verarbeitet und auf einem Server die dazu gehörige Modelnummer findet. Mit diesen beiden variablen also Seriennummer und modelnummer, soll dan der 2 Request ausgeführt werden. Einzeln funktionieren beide requests einwandfrei. nur wenn ich versuche sie zu kombinieren, streikt es bei function Product() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var modelno= model; ....... Hoffe das ist ausreichend um mir bei diesem pröblemchen weiterzuhelfen . Danke Zitieren
Klotzkopp Geschrieben 28. Mai 2013 Geschrieben 28. Mai 2013 "Es streikt" ist ungefähr so aussagekräftig wie "funktioniert nicht". Was ist das erwartete Verhalten? Was ist das beobachtete Verhalten? Zitieren
king_and1 Geschrieben 28. Mai 2013 Autor Geschrieben 28. Mai 2013 (bearbeitet) hmm sorry Also wie man ja sieht kommt nach : " if (model !== null) { " ein alert. Bis zu diesem Punkt funktioniert alles. Aber da passiert nix mehr. Habe leider keine Tools zum monitoring der befehle kann also keinen genauen Fehler nennen. Da ich aber keinen alert mit " HI 2 " erhalte, hängt sich der Request wahrscheinlich nach dem " alert (model); " irgendwo auf .. ich vermute mal er kommt mit dem 2 Request nicht klar .. mein gewünschtes verhalten wäre hier , das wenn variable model nicht null ist, es gleich in den 2 Request übergeht, bei dem er dan die seriennummer wieder von der eingabe nimmt , ( oder auch aus einer variablen , falls das möglich ist) und die modelnummer aus der variablen model und damit den rest ausführt. Mehr dazu fällt mir grade nicht ein :/ <script> function myCall() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var Url = "http://10.1.12.136/lime/SerialNo.php?serial="+serialno; var request = $.ajax({ url: Url, type: "GET", dataType: "xml", success: onSerialNoCheckComplete, }); function onSerialNoCheckComplete(xml) { alert('HI'); $(xml).find('ArrayOfDetails').each(function(){ var model = $(this).find('ModelNumber').text(); if (model !== null) { alert (model); function Product() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var modelno= model; var Url = "http://10.1.12.136/lime/Product.php?serial="+serialno+"&model="+modelno; var request2 = $.ajax2({ url: Url, type: "GET", dataType: "xml", success: Productdetails, }); function Productdetails(xml) { alert('HI2'); $(xml).find('ProductDetails').each(function(){ var productname = $(this).find('ProductName').text(); var name = $(this).find('ProductCategory').text(); var date = $(this).find('PurchaseDate').text(); alert (productname + name + date ); $("#question91 input.radio:first").click(); }); }; }; $("#question91 input.radio:first").click(); } else { alert ('fail'); } }); }; }; </script><input onclick="myCall()" type="button" value="Check" /> Bearbeitet 28. Mai 2013 von king_and1 Zitieren
Klotzkopp Geschrieben 28. Mai 2013 Geschrieben 28. Mai 2013 Pro Tip of the day: Wenn man seinen Code sauber einrückt, sieht man viel besser, wie die Blöcke verschachtelt sind. Ich habe deinen Code mal richtig* eingerückt, vielleicht fällt dir was auf: <script> function myCall() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var Url = "http://10.1.12.136/lime/SerialNo.php?serial="+serialno; var request = $.ajax({ url: Url, type: "GET", dataType: "xml", success: onSerialNoCheckComplete, }); function onSerialNoCheckComplete(xml) { alert('HI'); $(xml).find('ArrayOfDetails').each(function(){ var model = $(this).find('ModelNumber').text(); if (model !== null) { alert (model); function Product() { var serialno= document.getElementById('answer344354X45X249SQ001' ).value; var modelno= model; var Url = "http://10.1.12.136/lime/Product.php?serial="+serialno+"&model="+modelno; var request2 = $.ajax2({ url: Url, type: "GET", dataType: "xml", success: Productdetails, }); function Productdetails(xml) { alert('HI2'); $(xml).find('ProductDetails').each(function(){ var productname = $(this).find('ProductName').text(); var name = $(this).find('ProductCategory').text(); var date = $(this).find('PurchaseDate').text(); alert (productname + name + date ); $("#question91 input.radio:first").click(); }); }; }; $("#question91 input.radio:first").click(); } else { alert ('fail'); } }); }; }; </script><input onclick="myCall()" type="button" value="Check" />[/code] * Zumindest hoffe ich das. PHP ist nicht mein Fachgebiet. Zitieren
king_and1 Geschrieben 28. Mai 2013 Autor Geschrieben 28. Mai 2013 Ok , ich verstehe was du meinst. Viel besser so , danke dir mich mal auf sowas hinzuweisen Aber leider finde ich nichts :/ , hast du da was gesehen was eigtnlich nicht so sein sollte ? ^^ Zitieren
Klotzkopp Geschrieben 28. Mai 2013 Geschrieben 28. Mai 2013 hast du da was gesehen was eigtnlich nicht so sein sollte ? ^^Wie gesagt, ich verstehe nicht viel von PHP. Ich habe den Eindruck, dass Product nirgends aufgerufen wird. Es kommt mir auch merkwürdig vor, dass du die Funktionen alle ineinander verschachtelt hast. Aber vielleicht muss das hier so sein. Vielleicht kann jemand, der sich mit PHP und Ajax besser auskennt, mehr dazu sagen. Zitieren
flashpixx Geschrieben 28. Mai 2013 Geschrieben 28. Mai 2013 Wie gesagt, ich verstehe nicht viel von PHP. Ich habe den Eindruck, dass Product nirgends aufgerufen wird. Es kommt mir auch merkwürdig vor, dass du die Funktionen alle ineinander verschachtelt hast. Anonyme Funktion gibt es nicht nur in PHP und JavaScript sonder auch z.B. in C++ und der Ajax-Request jQuery.ajax() | jQuery API Documentation ist auch in der Doku zu finden.Warum aber nicht der Code konsistent gehalten ist, das sollte man sich mal überlegen, denn es werden anonyme Funktionen und Funktionen mittels Name gemischt. Zusätzlich empfehle ich die Verwendung eines Debuggers, den eigentlicher jeder Browser bietet. Zitieren
king_and1 Geschrieben 28. Mai 2013 Autor Geschrieben 28. Mai 2013 @habbeda Uupps , etwas das nicht da sein sollte ^^ , ändert aber leider nix ... Zitieren
habbeda Geschrieben 29. Mai 2013 Geschrieben 29. Mai 2013 ändert aber leider nix ... Klotzkopps Hinweis könnte aber vielleicht etwas ändern... Ich habe den Eindruck, dass Product nirgends aufgerufen wird. Zitieren
a3quit4s Geschrieben 12. Juni 2013 Geschrieben 12. Juni 2013 Schoen, und wie? Vielleicht sollte man das fuer andere die ein aehnliches Problem haben dokumentieren. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.