inhalt von textfeld durch requestErgebins an andere url ersetzen

dialsc

Grünschnabel
hallo zusammen,

ich moechte gern folgendes erreichen:
in einer webmailApplikation muss der benutzer beim erstellen einer neuen nachricht den empfaenger angeben. ich möchte nun, dass es reicht, wenn er den namen des empfaengers eintraegt, so wie er in seinem adressBuch hinterlegt ist. beim verlassen des feldes soll dann per javascript eine anfrage an eine spezielle php oder jsp oder was auch immer -seite gesendet werden, die zu dem namen die entsprechende emailAdresse aus dem adressBuch des jeweiligen benutzers heraussucht. die gefundene emailAdresse soll dann den returnwert des scripts darstellen und das javascript des emailErstellungsFensters soll diesen entgegen nehmen und den durch den benutzer eingetragenen namen durch die zurueck bekommene emailAdresse ersetzen.

kann mir bitte jemand sagen, wie ich das hinbekommen.

vorab vielen dank und schoenen tag noch

dialsc
 
Okay im Prinzip musst du in deinem Textfeld immer beim verlassen (onblur) eine Funktion aufrufen, der die Eingabe als Parameter übergeben wird - im Beispiel heißt diese Funktion querry(). Diese Funktion ruft dann dein PHP-script auf und übergibt diesem dann die Eingabe über die URL. Das PHP-Script sucht dann den entsprechenden Eintrag zur Eingabe und gibt einen javascript Befehl zurück, der dann das Textfeld entsprechend ändert. Ich nenne das PHP-Script mal daten.js.php und die Datei mit dem Textfeld mal index.html.

Die intex.html sähe dann so aus:
HTML:
<script type="text/javascript"><!--
       
       function query(input) {
       	skript = document.createElement('SCRIPT');
       	skript.setAttribute('src',encodeURI('daten.js.php?input='+input));
       	document.getElementsByTagName('BODY')[0].appendChild(skript);
       }
       
       //--></script>
       
    <input type="text" id="textfeld" onblur="query(this.value)">
Die daten.js.php dann entsperchend so:
PHP:
document.getElementById('textfeld').value = "
     	<?php
     		$input = urldecode($_GET['input']);
     		
     		//Hier kommt dann der Databasequerry der zu $input
     		//den entsprechenden $output sucht hin
     		
     		echo $output;
     	?>";
 
Zuletzt bearbeitet:
hallo con-f-use,

also der ansatz klingt eigentlich sehr vielversprechend. leider klappt es aber nicht wirklich bei mir. ie sagt immer nur, dass ein fehler aufgetretten ist. that's it...

koennte es wohl sein, dass da etwas noch nicht so ganz stimmt?

gruesse und vielen dank

dialsc
 
test.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html lang="de-DE">
<head>
<title>Webmail Test</title>
</head>

<body>

<script type="text/javascript">
     
     function query(input) {
     	skript = document.createElement('SCRIPT');
     	skript.setAttribute('src',encodeURL('answer.php?input=' + input));
     	document.getElementsByTagName('BODY')[0].appendChild(skript);
     }
     
</script>
     
<input type="text" id="textfeld" onblur="querry(this.value)">

</body>

answer.php
PHP:
document.getElementById('textfeld').value = <?php
	$input = urldecode($_GET['input']);
	
	echo '\"0815\"';
    ?>
natuerlich passiert hier noch nichts. moechte lediglich den testWert zurueckgeliefert bekommen. erst wenn das klappt, werd ich ein wenig logik einbauen.

ie sagt gar nicht viel. lediglich im linken unteren eck taucht eine gelbes hinweisSymbol auf, mit der angabe, es sei ein fehler aufgetreten. das ist leider alles...

thx

dialsc
 
Auf das Symbol doppelklicken und auf 'Details' gehen - so bekommst du die volle Fehlermeldung.

Egal, was ich für Fehler endeckt habe:


  • Tippfehler 1: Im onblur steht 'querry', die Funtion heißt aber 'query' mit einem 'r'
  • Tippfehler 2: Die Funktion encodeURL() gibt es nicht muss encodeURI() heißen
  • Syntaxfehler: Mit den Anführungszeichen bin ich durcheinander gekommen innerhalb von einfachen Anführungszeichen ( ' ) escapet PHP nicht. Es muss also statt '\"' folgendes stehen: "\"" - Das oder man überlässt das gleich dem nicht-PHP-Teil.
Sorry, hatte das Script nicht getestet und bin davon ausgegangen, dass du einfache (Syntax)-Fehler entdecken würdest. Hab meinen Beitrag von oben editiert, jetzt müsste es funktionieren.
 
Zuletzt bearbeitet:
hi,

also zunaechst einmal recht herzlichen dank. super sache, dass ich jetzt weiss, wie ich es loesen kann. das hilft mir sehr, also, merci...

allerdings muss ich gestehen, dass ich derartige schreibFehler wirklich auch selbst haette entdecken koenne. aber was soll's, nun geht es ja.

thx a lot

schoenen tag...

dialsc
 

Neue Beiträge

Zurück