Ergebnis 1 bis 9 von 9
  1. #1
    hartkrass ist offline 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 vorab
    Geändert von hartkrass (13-10-2008 um 12:40 Uhr)

  2. #2
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

  3. #3
    hartkrass ist offline 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;
    		}
    irgendwie steige ich durch die Lösung dort nicht durch.... da ist das ja anscheinend mit onreadystate... gelöst

    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....

  4. #4
    tsseh ist offline 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.

  5. #5
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: JavaScript interpretieren nach Ajax Request

    Zitat Zitat von hartkrass Beitrag anzeigen
    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???
    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.

  6. #6
    hartkrass ist offline 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...

  7. #7
    tsseh ist offline Foren-Gott
    registriert
    19-05-2008
    Beiträge
    5.667

    AW: JavaScript interpretieren nach Ajax Request

    Geändert von tsseh (14-10-2008 um 13:11 Uhr)

  8. #8
    hartkrass ist offline 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;
    		}
    Das mache ich in der index.php
    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

  9. #9
    tsseh ist offline 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>
    edit: das war als ergänzung zu meinem vorherigen Post gedacht.
    Geändert von tsseh (14-10-2008 um 13:30 Uhr)

Ähnliche Themen

  1. Ajax JavaScript - Problem
    Von SkYyY im Forum JavaScript
    Antworten: 94
    Letzter Beitrag: 20-08-2011, 12:26
  2. Antworten: 9
    Letzter Beitrag: 11-03-2009, 15:39
  3. Ajax Request geht nicht immer
    Von dezer im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 20-06-2008, 18:06
  4. Zeichenkodierung AJAX Request
    Von r3l4x im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 14-03-2008, 17:19
  5. JavaScript AJAX - Menüleiste
    Von Intexe im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 02-09-2006, 18:53

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •