Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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>

  • 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" />

  • 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

  • Autor

hmm sorry :P

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 von king_and1

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.

  • Autor

Ok , ich verstehe was du meinst. Viel besser so , danke dir mich mal auf sowas hinzuweisen :D

Aber leider finde ich nichts :/ , hast du da was gesehen was eigtnlich nicht so sein sollte ? ^^

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.

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.

  • 2 Wochen später...

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.