Veröffentlicht 27. Mai 201312 j 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>
27. Mai 201312 j afo: Das ist kein JAVA. Rück bitte deinen Code ein, so ist das ganze ziemlich schlecht zu lesen.
28. Mai 201312 j Autor 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" />
28. Mai 201312 j weiss jemand wieso das so nicht funktioniert ? :/ Bitte Code-Tags verwendenBitte liefere eine brauchbare Fehlerbeschreibung ab. "Funktioniert nicht" hilft nicht weiter.
28. Mai 201312 j Autor 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
28. Mai 201312 j "Es streikt" ist ungefähr so aussagekräftig wie "funktioniert nicht". Was ist das erwartete Verhalten? Was ist das beobachtete Verhalten?
28. Mai 201312 j Autor 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 201312 j von king_and1
28. Mai 201312 j 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.
28. Mai 201312 j Autor 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 ? ^^
28. Mai 201312 j 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.
28. Mai 201312 j 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.
28. Mai 201312 j Autor @habbeda Uupps , etwas das nicht da sein sollte ^^ , ändert aber leider nix ...
29. Mai 201312 j ändert aber leider nix ... Klotzkopps Hinweis könnte aber vielleicht etwas ändern... Ich habe den Eindruck, dass Product nirgends aufgerufen wird.
12. Juni 201312 j Schoen, und wie? Vielleicht sollte man das fuer andere die ein aehnliches Problem haben dokumentieren.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.