Ergebnis 1 bis 9 von 9
-
13-10-2008, 12:27 #1
Grünschnabel
- registriert
- 13-10-2008
- Beiträge
- 8
JavaScript interpretieren nach Ajax Request
Hallo Leute,
von meiner index.php aus lade ich mittels Ajax neuen Code in ein spezielles DIV. Dieser Code enthält ein Formular (in html) und zusätzlich noch einen <script type='text/javascript'>....
</script> mit diversen Funktionen
Ich kann die Funktionen nicht direkt in die index.php einbinden, da POST-Werte ins JS dynamisch eingefügt werden.
Mein Formular wird angezeigt. Leider wird mir beim Abschicken des Formulars (da soll eine JS-Funktion aufgerufen werden) angezeigt, dass diese FKT nicht existiert. Es scheint, als würde der neue Script-Code nicht beachtet werden.
Wie erreiche ich, dass meine index.php nun schnallt, dass im Ajax Request neue Funktionen stehen???
letztlich geht es drum, dass im AJAXRequest steht:
<script type='text/javascript'>
function pruefeFormular() {
//Hier wird überprüft
}
</script>
<form>
//Hier erscheint mein Formular
<input type='button' onclick='pruefeFormular()' />
</form>
Wenn der kram nachher in die index.php an entsprechende stelle gepackt wird und ich dann auf den Button klicke --> undefined function pruefeFormular
Wenn ich das ganze Script ohne AJAX Request teste, also statisch mache funktioniert übrigens alles wunderbar....
Grüße und vielen Dank schonmal vorabGeändert von hartkrass (13-10-2008 um 12:40 Uhr)
-
13-10-2008, 12:41 #2
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: JavaScript interpretieren nach Ajax Request
-
13-10-2008, 13:28 #3
Grünschnabel
- registriert
- 13-10-2008
- Beiträge
- 8
AW: JavaScript interpretieren nach Ajax Request
Hallo,
Danke erstmal für den Querlink, hab das versucht nachzuvollziehen...
hilft mir leider gerade nicht weiter, da ich für den Ajax folgendes verwende:
HTML-Code:function update_taskbar() { var myAjax = new Ajax.Request( "actions/update_taskbar.php", { method: 'post', parameters: "browser_width=" + browser_width(), onComplete: show_tasks } ); } function show_tasks( originalRequest ) { document.getElementById('tasks').innerHTML = originalRequest.responseText; }
mit dem eval hab ich es auch probiert, hat aber leider nicht gefunzt, weil er natürlich im JAVA den HTML-Code nicht auswerten kann....
-
13-10-2008, 13:40 #4
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: JavaScript interpretieren nach Ajax Request
mein link bezog sich auch auf das eval. du mußt dann natürlich code und html trennen. nur gibt es (nach der trennung dann sowieso) eigentlich keinen grund wirklich code nachzuladen.
-
13-10-2008, 15:01 #5
AW: JavaScript interpretieren nach Ajax Request
Ich stelle mal wieder meine ketzerische Frage: Warum muss der Code nachgeladen werden? Wieso kann Dein Ursprungs-Code nicht den neuen Code bereits kennen / bereits geladen haben, so dass Du lediglich die Daten per Ajax holst?
Anders formuliert: Was ist an Deinem neuen Script-Code so anders, so "neu", dass er überhaupt nachgeladen werden muss und nicht schon von vorneherein vorhanden sein kann?1. Get people to play Space Taxi
2. Sell real estates on neptun
3. Profit!
IE is not a browser, it is a scream.
Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.
-
14-10-2008, 12:49 #6
Grünschnabel
- registriert
- 13-10-2008
- Beiträge
- 8
AW: JavaScript interpretieren nach Ajax Request
Berechtigte Frage auf die ich nur antworten kann ja der Code muss dynamisch neu geladen werden aus dem einfachen Grund, dass eine "desktop-Anwendung" entstehen soll in der natürlich n Fenster geöffnet sein können mit teilweise gleichen Ursprungs-Funktionen (Suchmaske etc.), die aber mit unterschiedlichen Values gefüllt sind.... also alles ein bissel komplexer, deshalb hab ich auch nicht den Quellcode gepostet, bis man da durch wäre würde es ordentlich dauern.
Zur eval-Methode ich hab mir meine JS-Dinge nun vom HTML getrennt, nun hab ich das Problem, dass ich den Ajax Request und die Auswertung selbst in ner Funktion mache, demzufolge, wenn ich dort den eval mit dem JS-Zeug starte werden meine neuen Funktionen ja innerhalb einer anderen Funktion definiert und sind folglich nicht aufzurufen. Gibt es etwas in der Art von Sprungmarken oder eine Möglichkeit, dass ich den eval dann außerhalb einer Funktion starten kann? So dass eine meiner Funktionen am Ende sagt: so jetzt spring mal in Zeile n und führe den eval aus...
-
14-10-2008, 13:07 #7
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: JavaScript interpretieren nach Ajax Request
http://forum.jswelt.de/javascript/44...tml#post282220 (Mit Javascript-Funktion eine weitere Funktion einfuegen und diese dann ausfuehren???)
EDIT: ich meine hier self.functionname=function(){...} (oder window)Geändert von tsseh (14-10-2008 um 13:11 Uhr)
-
14-10-2008, 13:26 #8
Grünschnabel
- registriert
- 13-10-2008
- Beiträge
- 8
AW: JavaScript interpretieren nach Ajax Request
Fetten Dank euch für die Mühe, jetzt geht es!!!
Also hier nochmal die Lösung in Kurzform:
Code:function show_desktop( originalRequest ) { /*Zerlegen des emfangenen Strings in JAVA und HTML-Teil*/ var responsed_JAVA = ""; var responsed_HTML = ""; var responsed_length = originalRequest.responseText.length; responsed_JAVA_beg_arr = new Array(); responsed_JAVA_end_arr = new Array(); var arr_counter = 0; var start = 0; while (start < responsed_length) { if(originalRequest.responseText.substr(start,7) == "<script"){ while(originalRequest.responseText.substr(start,1) != ">") { start++; } start++; responsed_JAVA_beg_arr[arr_counter] = start; } if(originalRequest.responseText.substr(start,8) == "</script"){ responsed_JAVA_end_arr[arr_counter] = start; arr_counter++; } start++; } start = 0; for(i = 0; i < arr_counter ; i++) { responsed_JAVA += originalRequest.responseText.substring(responsed_JAVA_beg_arr[i],responsed_JAVA_end_arr[i]); responsed_HTML += originalRequest.responseText.substring(start,responsed_JAVA_beg_arr[i]); start = responsed_JAVA_end_arr[i]; } responsed_HTML += originalRequest.responseText.substring(start,responsed_length); /*Java wird ausgewertet (<script></script> wurden oben beim Zerlegen schon weggehauen*/ eval(responsed_JAVA); /*Hier wird das Formular in den main-Bereich geknallt */ document.getElementById('main').innerHTML = responsed_HTML; }
nun ist wichtig, dass Funktionen, die im Request stehen folgendermaßen definiert wurden (also in der Datei, die mittels Ajax geladen wird):
self.Funktionsname = function (Parameter_1,...,Parameter_n) { Anweisung1; };
Semikolon am Ende nicht vergessen!
Grüße
-
14-10-2008, 13:27 #9
Foren-Gott
- registriert
- 19-05-2008
- Beiträge
- 5.667
AW: JavaScript interpretieren nach Ajax Request
Code:<html> <head> <title>Test</title> <script type="text/javascript"> function xxx() { eval("self.yyy = function() { alert('zzz'); };"); } xxx(); </script> </head> <body> <script type="text/javascript"> yyy(); </script> </body> </html>
Geändert von tsseh (14-10-2008 um 13:30 Uhr)
Ähnliche Themen
-
Ajax JavaScript - Problem
Von SkYyY im Forum JavaScriptAntworten: 94Letzter Beitrag: 20-08-2011, 12:26 -
javascript variable an ein php script senden, ajax?
Von _Dani_ im Forum JavaScriptAntworten: 9Letzter Beitrag: 11-03-2009, 15:39 -
Ajax Request geht nicht immer
Von dezer im Forum JavaScriptAntworten: 10Letzter Beitrag: 20-06-2008, 18:06 -
Zeichenkodierung AJAX Request
Von r3l4x im Forum Serverseitige ProgrammierungAntworten: 2Letzter Beitrag: 14-03-2008, 17:19 -
JavaScript AJAX - Menüleiste
Von Intexe im Forum JavaScriptAntworten: 5Letzter Beitrag: 02-09-2006, 18:53
Lesezeichen