zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Javascript direkt via XMLHttpRequest ausführen?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 20.06.2012, 12:40
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard Javascript direkt via XMLHttpRequest ausführen?

Hallo ihr lieben Leut,


versuche gestern eine Kleinigkeit hinzubekommen und bin mir jetzt langsam gar nicht mehr so sicher, ob das überhaupt geht.
Im Prinzip will ich den Inhalt einzelner Javascript-Objekte mittels XMLHttpRequest() füllen.

mein Ansatz dazu ist auf der Forularseite:

HTML-Code:
.....

<script type="text/javascript">
var xmlHttp = null;
try {  
  xmlHttp = new XMLHttpRequest();
} 
catch(e) {
   .......
}

  if (xmlHttp) {
    xmlHttp.open('GET', 'exe_js.php', true);
    xmlHttp.onreadystatechange = function () {
      if (xmlHttp.readyState == 4) {
          alert('in '+xmlHttp.responseText);
      }
    };    
    xmlHttp.send(null);
  }

</script>

<body>
     <input type="text" id="textfeld"> 
</body>
...und das exe_js.php sieht ganz schlicht wie folgt aus:

HTML-Code:
<script language="javascript">
  alert("hier exe_js ");  
  window.opener.document.getElementById('textfeld').value = 'war bei exe_js';
</script>
und nach dem Aufruf vom xmlHttp.send(null); wünsche ich mir,
daß im Formularfeld dann ‚war be exe_js’ steht.
(Das alert("hier exe_js "); funktioniert natürlich auch nicht)
der Scripttext vom exe_js.php kommt richtig beim xmlHttp.responseText an
aber ich finde nicht heraus wie den einfach nur ausgeführt.
Geht das überhaupt oder ist mein Lösungsansatz einfach nur für’n A....?
muß ich den doch erst irgendwo mit xmlHttp.responseText einfügen und auf der Hauptseite ausführen
...z.B. gleich in der Call-Back-Funktion?

habe im Mom keine Ideen mehr

besten Dank für jeden Tip

Gruß
Z
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 20.06.2012, 12:58
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 414
Maxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer Mensch
Standard

Um JavaScript-Code nachzuladen, reicht es einfach ein neues <script>-Element in den <head> einzufügen.

Code:
var head = document.getElementsByTagName('head')[0];
var script= document.createElement("script");
script.type = "text/javascript";
script.src="/path/to/script.js";
head.appendChild( script);
Deine exe_js.php sollte dann natürlich den richtigen Content-Type zurückgeben (application/javascript) und nur JavaScript enthalten.

Aber pass auf was du da nachladest, nicht das du eine große XSS-Lücke schaffst.

Gruß,
Max
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 20.06.2012, 15:47
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard

Hai Maxe,

vorab besten Dank für deine Mühe, aber wenn ich dich richtig verstanden habe
hast du mich falsch verstanden bzw. habe ich mich vermutlich nicht ausführlich genug erklärt

im exe_js.php eine just-in-time Übergabe von Variablen durch Befragung einer Datenbank ermöglichen
so steht im exe_js.php natürlich nicht nur das Javascriptkommando sondern vorher eine SQL-Abfrage

HTML-Code:
<?php
$name = mysql_find_name_by_mail($_GET[‘mail’]);
?>

<script language="javascript">
window.opener.document.getElementById('textfeld').value = '<?php $name ?>';
</script>
Also: wird ein bestimmtes Feld in dem Hauptformular ausgefüllt möchte ich ein stillen Request auslösen
und in der Datenbank suchen, ob zu dem Begriff Inhalte von anderen Input-Feldern im automatisch ergänzt werden können.

z.B. gibt es im Hauptformular die Inputfelder Name und Email
und gibt ein User eine Email an, wird der XMLhtmlRequest ausgelöst und automatisch der Name gesucht und ergänzt.

...oder habe ich dich völlig falsch verstanden und mit deinem Lösungsanatz ist das auch zu machen?

Gruß
Zen
Mit Zitat antworten
  #4 (permalink)  
Alt 20.06.2012, 16:49
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Das spielt keine Rolle, es kommt nur darauf an, was das Skript zurückgibt. Aber der ansatz ist nicht sinnvoll, warum gibst du nicht einfach die Daten als JSON an das Skript und dort werden dann die Daten benutzt. Das ist der übliche Weg und soweit ich das sehe ist es auch das was du machen wilst. Nur dein Ansatz ist ein Umweg.
Mit Zitat antworten
  #5 (permalink)  
Alt 26.06.2012, 10:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.12.2010
Beiträge: 43
ZENeca befindet sich auf einem aufstrebenden Ast
Standard

Thanx @ protonenbeschleuniger

war doch meine Ahnung richtig, daß ich die Parameter irgendwie in einer Call-Back übertragen sollte
und jatzt habe ich es auch so, wie von dir empfholen, vorher anständig mit JSON verpackt
Mit Zitat antworten
Antwort

Stichwörter
javascript, xmlhttprequest

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
html hidden-array aus Formular via javascript füllen ZENeca Javascript & Ajax 8 11.07.2011 19:07
Javascript nur per Klick ausführen Vevi313 Javascript & Ajax 2 06.04.2009 15:17
Problem beim ein/ausblenden von Spalten in Tabellen via CSS und JavaScript chrisol_76 CSS 2 21.07.2008 17:37
JavaScript nach Ajax-Befehl ausführen wuschba Javascript & Ajax 2 10.08.2007 19:16
JavaScript per Link auf externer Seite ausführen Engholm Javascript & Ajax 1 11.08.2006 19:23


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:59 Uhr.