PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit JavaScript PHP aufrufen ohne Fenster ???



Torsten.E
10-07-2004, 19:54
Wir haben ein Formular, welches nach der Eingabe überprüft werden soll.
Zur Prüfung wird über JavaScript eine PHP-Datei aufgerufen (MySQL-Abfragen usw). Dieses erstellt als Ergebnis "bis jetzt" eine weitere HTML-Seite mit JavaScript, welches dann ausgeführt wird und die entsprechenden Variablen im "aufrufenden" Fenster setzt.
D.h. ich habe kurzfristig 2 Fenster. Das eigentliche Eingabefenster sowie das Fenster mit dem "Ergebnis-JavaScript".

Meine Frage, wie kann ich über JavaScript ich eine PHP-Datei aufrufen, welche als Ergebnis natürlich wieder JavaScript erzeugt, aber ohne dass kurz ein zusätzliches Fenster notwendig ist.

Ich hoffe ihr versteht was ich meine.

Torsten.E

Trendman
11-07-2004, 12:00
Ja, es gibt eine möglichkeit und zwar kannst Du per Javascript ein Bild vom server in eine variable laden (dafür gibt es eine Funktion, ich weiß gerade nicht welche, aber der google weiß es sicher). Du gibst ihm anstatt eines bildes einfach das php-skript, welches Du laden willst.

Trendman
11-07-2004, 12:05
ich glaube es geht mit
img = new Image;
img.src = 'yourscript.php';

bin mir aber nicht ganz sicher

Torsten.E
11-07-2004, 21:15
Das mit dem Image stimmt schon, von der Syntax her,
aber irgendwie funzt es ned, hier nochmal das Problem

Beispiel:

In einer Variable PLZ wird in einem Formular ein entsprechender
Eintrag gemacht. Nachdem das Feld verlassen wird, soll über ein
JavaScript ein PHP-Programm aufgerufen werden. Dieses sucht in
einer MySQL-Datenbank nach der PLZ, ermittelt den Ort. Danach
soll der Ort in eine Formularvarable, welche natürlich sichtbar ist
übertragen werden.



echo "window.open('phpfile.php?PLZ='+document.formular.p lz.value,'Fenstername');";


Bisher mach ich das, indem ich über JavaScript ein neues Fenster
aufmache, dort die PHP-Datei aufrufe. Das PHP-File ermittelt das Ergebnis
und zeigt als Rückgabe wieder JavaScript an.



echo '<script language=JavaScript>';
echo 'opener.document.plz.ort.value="GesuchterOrt";';
echo 'opener.document.plz.ort.focus();';
echo 'self.close();';
echo '</script>';


Jetzt blinkt eben das Fenster kurz auf, was ich aber eigentlich vermeiden
wollte.

Torsten.E

sixfriends
12-07-2004, 13:04
Wenn sowieso ein neues Fenster geladen wird, kannst du eigentlich auch gleich das PHP- Script im selben Fenster aufrufen lassen und vom PHPScript statt der JS Seite die vorherige Seite erstellen lassen, nur diesmal mit den entsprechenden Eingaben (value="blabla").

Erspart dir auch einiges an JS, damit wird es auch wieder Browserunabhängiger.

sixfriends

Torsten.E
12-07-2004, 16:03
Nein, denn "onBlur" wird auf Feld-Ebene verwendet. D.h. bei einer Eingabemaske mit ca. 25 Eingabefeldern würde immer wieder die Seite neu aufgebaut. Das soll aber so nicht sein.

Beispiel:
Wird die PLZ 12345 in einem Feld eingegeben, soll nur in einer MySQL-Datenbank der entsprechende Ort gesucht werden und dann das Feld ORT mit dem Ortsnamen gefüllt werden. Dazu will ich aber nicht immer wieder die Seite komplett neu aufbauen. Oder soll eine Meldung erscheinen. PLZ ungültig, was ja eine ALERT-Meldung sein kann.

sixfriends
18-07-2004, 00:24
In dem Fall ist es auch möglich, einen frame bzw. iframe mit der Höhe und/oder Breite 0 zu definieren. Das fällt dann im Normalfall keinem auf. Hab das früher mal so gemacht, um nen Sound auf ein Onmouseover event zu legen, hat dann bei onmouseover immer wieder den unsichtbaren Frame neugeladen :D

sixfriends

Torsten.E
18-07-2004, 11:56
An einen Frame hatte ich auch gedacht, bzw. iframe.

Ich wollte nur wissen, ob es vielleicht noch eine "bessere"
Möglichkeit gibt.
Aber damit ist es machbar, stimmt

:-)

Torsten