Senshi86
Erfahrenes Mitglied
N'abend
bin grad etwas m verzweifeln und hoffe hier auf ein paar Ideen die mir zur Lösung verhelfen könnten
Und zwar folgendes. Ich bastele zur Zeit an einem Script, welches Daten von einer Seite auslesen und diese an eine andere schicken soll. Diese Daten einfach an die URL für GET dran zu hängen funktioniert einwandfrei, da aber schnell einiges zusammen kommen kann, ist GET mit seinen Limitierungen aber leider nicht das richtige. Also wollte ich es mit POST versuchen und dachte mir, warum nicht gleich mit Ajax senden.
Mein Ausgangsscript dazu (jQuery), von einer meiner Aeiten bei denen Ajax schon funktioniert:
Wie gesagt, diese Variante des Versenden von Daten mit jQuery Ajax typ POST funktioniert einwandfrei.
Jetzt hab ich diesen Part 1:1 in mein neues Script übernommen, der geht auch rein, ruft auch meine Ajax Seite auf, hat auch ordentlich die GET Parameter an der URL dran, aber die POST Parameter fehlen auf einmal und ich hab einfach keine Ahnung warum, hab schon jetzt Stundenlang herum gedoktert aber ist nichts bei rum gekommen. Das aktuelle Script sieht so aus:
Anzumerken wären noch folgende Punkte:
- Das Script wird über die URL ausgeführt (deswegen das "javascript:" davor), das Original von oben war direkt in eine Seite eingebunden
- Auf der Seite wird bereits mit Mootools gearbeitet, deswegen hab ich statt des $ auch schon überall jQuery verwendet um Verwechslungen zu unterbinden, hatte auch schon mal versucht das Problem mit Mootools zu lösen aber irgendwie komm ich damit net klar und es funktioniert hinten und vorne nicht, deswegen halt etwas umständlicher meine jQuery Lösung.
- Wenn ich vor dem ajax Request mit alert() die variablen url sowie data ausgeben lasse, sind beide ordentlich gefüllt.
- Solange ich bei einer Alert Ausgabe nicht bestätige, wird der Ajax Request definitiv nicht ausgeführt, das weiß ich weil ich mir während der PHP Bearbeitung nen Merker in der Datenbank setze, der kommt erst rein wenn alle Alerts bestätigt sind. Das heißt ich kann auch ausschließen, dass sich die Script Stücke aus irgendwelchen Gründen gegenseitig überholen.
Falls jemand noch mehr Infos braucht, einfach fragen
Danke und Gruß
Marcel
bin grad etwas m verzweifeln und hoffe hier auf ein paar Ideen die mir zur Lösung verhelfen könnten
Und zwar folgendes. Ich bastele zur Zeit an einem Script, welches Daten von einer Seite auslesen und diese an eine andere schicken soll. Diese Daten einfach an die URL für GET dran zu hängen funktioniert einwandfrei, da aber schnell einiges zusammen kommen kann, ist GET mit seinen Limitierungen aber leider nicht das richtige. Also wollte ich es mit POST versuchen und dachte mir, warum nicht gleich mit Ajax senden.
Mein Ausgangsscript dazu (jQuery), von einer meiner Aeiten bei denen Ajax schon funktioniert:
Code:
function set_text(id, text) {
var url = $('#ajaxurl').val() + '&ajax=99';
var data = 'text_id=' + text;
$.ajax({
type: 'POST',
url: url,
data: data,
dataType: 'xml',
success: function(xml) {
$('#' + id).html($(text, xml).text());
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert ('An error occured!');
}
});
}
Jetzt hab ich diesen Part 1:1 in mein neues Script übernommen, der geht auch rein, ruft auch meine Ajax Seite auf, hat auch ordentlich die GET Parameter an der URL dran, aber die POST Parameter fehlen auf einmal und ich hab einfach keine Ahnung warum, hab schon jetzt Stundenlang herum gedoktert aber ist nichts bei rum gekommen. Das aktuelle Script sieht so aus:
Code:
javascript: function remMsg(b) {
try {
var c = document.getElementById("TWToolMSG");
b.removeChild(c);
} catch (e) {}
}
try {
var css = document.createElement("link");
css.type = "text/css";
css.href="http://twtool.kilu.de/public/stylesheets/jstextbox.css";
css.rel = "stylesheet";
document.getElementsByTagName("head").item(0).appendChild(css);
var nh2 = document.createElement("h2");
nh2.innerHTML = "TWTool Übernahmestatus";
var nP = document.createElement("p");
nP.innerHTML = "<br />Lade Elemente ...";
nP.id = "TWToolMSGText";
var nDiv = document.createElement("div");
nDiv.className = "TWToolTextBox";
nDiv.id = "TWToolMSG";
nDiv.style.left = ((window.innerWidth - 400) / 2) + "px";
nDiv.style.top = ((window.innerHeight - 200) / 2) + "px";
nDiv.appendChild(nh2);
nDiv.appendChild(nP);
var b = document.getElementsByTagName("body")[0];
b.appendChild(nDiv);
var MST = document.getElementById("TWToolMSGText");
var Hd = document.getElementsByTagName("head").item(0);
var Sc = document.createElement("script");
Sc.type = "text/javascript";
Sc.src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js";
Hd.appendChild(Sc);
MST.innerHTML = "<br />Ermittele Inventar ...";
var url = "http://twtool.kilu.de/public/index.php?world=1&site=skilltool&a=99&ajax=6&uid=1&id=1";
var data = "";
var wear = document.getElementById("wear").getElementsByTagName("img");
for(i = 0; i < wear.length; i++)
{
data += wear[i].alt + "~";
}
var bag = document.getElementById("bag").getElementsByTagName("img");
for(i = 0; i < bag.length; i++)
{
data += bag[i].alt + "~";
}
var data = "items=" + encodeURIComponent(data);
MST.innerHTML = "<br />Sende Daten ...";
jQuery(document).ready( function() {
jQuery.ajax({
type: "POST",
url: url,
data: data,
dataType: "xml",
success: function(xml) {
jQuery("#TWToolMSGText").html("<br />Vorang abgeschlossen!");
window.setTimeout("remMsg(b)", 2000);
},
error: function() {
jQuery("#TWToolMSGText").html("<br />Fehler bei Übertragung!");
window.setTimeout("remMsg(b)", 2000);
}
});
});
} catch (e) {
MST.innerHTML = "<br />Fehler bei der Übernahme!";
window.setTimeout("remMsg(b)", 2000);
}
void(0);
- Das Script wird über die URL ausgeführt (deswegen das "javascript:" davor), das Original von oben war direkt in eine Seite eingebunden
- Auf der Seite wird bereits mit Mootools gearbeitet, deswegen hab ich statt des $ auch schon überall jQuery verwendet um Verwechslungen zu unterbinden, hatte auch schon mal versucht das Problem mit Mootools zu lösen aber irgendwie komm ich damit net klar und es funktioniert hinten und vorne nicht, deswegen halt etwas umständlicher meine jQuery Lösung.
- Wenn ich vor dem ajax Request mit alert() die variablen url sowie data ausgeben lasse, sind beide ordentlich gefüllt.
- Solange ich bei einer Alert Ausgabe nicht bestätige, wird der Ajax Request definitiv nicht ausgeführt, das weiß ich weil ich mir während der PHP Bearbeitung nen Merker in der Datenbank setze, der kommt erst rein wenn alle Alerts bestätigt sind. Das heißt ich kann auch ausschließen, dass sich die Script Stücke aus irgendwelchen Gründen gegenseitig überholen.
Falls jemand noch mehr Infos braucht, einfach fragen
Danke und Gruß
Marcel