Jump to content

Empfohlene Beiträge

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>

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


Fachinformatiker.de, 2020 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung