geöffnetes Fenster durch JS mit php Code fühlen- Problem mit write()

mSals

Mitglied
Hallo alle zusammen

ich hab ein Problem mit document.write()

Ich möchte ein Fenster - dass durch anklicken im enstprechendem Feld mit entsprechendem
Inhalt fühlen - das durch PHP aus der Datenbank rausgeholt wird.

Den php - code versuchte ich mit fenster.document.write() fühllen - aber bei bestimmten php
funktionen ruft es ständig irgendwelche Fehler - ich hab echt schon vieles versucht - und weiß
nicht wie ich es richtig machen soll. Vielleicht soll man den PHP Code wenn man write benutzt irgendwie gesondert markieren

Ein Beispiel für Code der nicht klappt:
Code:
updateFenster.document.write(" <?php "); 
updateFenster.document.write(" $zumUpdate = $_POST['zumUpdate']; ");
updateFenster.document.write(" include('mitarbeiter.inc'); ");
updateFenster.document.write(" ?>");

Da kommt diese Fehlermeldung : parse error, unexpected T_VARIABLE
Er kommt mit Variable nicht klar - aber wieso ? ich will doch nur dass er den Satz so wie er ist einfach hinschreibt zum restlichen Code..

Manchmal kommt auch ne Fehlermeldung wie : Call to undefined Array() ....

Weiß jemand worauf man da achten muss - und so der Fehler ist ?

Danke im Vorraus für jeden Tipp

mfg
 
Hmm, du benutzt in deinem Code gnau ein Array, wo könnte dann der Fehler liegen, wenn irgentwas von "Call to undifined Array" steht?

Außerdem solltest du erstmal realisieren wie php und javascript überhaupt funktionieren. PHP läuft nämlich nur auf dem Server, während Javascript nur beim User läuft. D.h. der Server sieht nur das hier
Code:
<?php "); 
    updateFenster.document.write(" $zumUpdate = $_POST['zumUpdate']; ");
  updateFenster.document.write(" include('mitarbeiter.inc'); ");
  updateFenster.document.write(" 
 ?>
und interpretiert es als PHP-Code. Das ergibt als php-Code aber keinen Sinn, weil einfach nur ein String "updateFenster.document.Write() ..." mit ein paar sinnlosen variablen da steht. gibt. Daher die unexpected T_VARIABLE. Du hast denk gleichen Denkfehler wie in diesem Thread http://www.tutorials.de/tutorials215831.html gemacht.
Selbst wenn es nicht schon am Serverende scheiterte, würde Javascript das ganze einfach munter ausgeben ohne das der PHP-Code beachtet wird, weil der Code ja schon weg vom Server wäre und Javascript den php-Code nicht prased.

Außerdem ganz nebenbei "füllen" schreibst sich ohne "h".
 
Zuletzt bearbeitet:
Außerdem ganz nebenbei "füllen" schreibst sich ohne "h".

:p Deutsche Sprache - schwehre Sprache .. Danke


PHP läuft nämlich nur auf dem Server, während Javascript nur beim User läuft.

:) Ja - das ist schon klar - der ganze JS Code ist bei mir nicht in <? php ... ?> eingeschlossen... sonst müsste man das alles mit echo " "; ausgeben.

Außerdem funktioniert zum BSP so ein Code richtig :
Code:
<script language = "JavaScript">
<!--
     function fenster(wert){
	updateFenster = window.open("","","width=400,height=200,left=600,screenY=450");		
	updateFenster.document.open();
	updateFenster.document.write("<html><body>");
	updateFenster.document.write(" <?php echo ' "+wert+" ';  ?> ");
	updateFenster.document.close();
    }
//-->
</script>
...

<?php $wert = "5" ;  ?>

<form action = "javascript_hello.html" method = "post">
hier druecken <input type = "radio" name = "cool" 
              onclick = "fenster(this.form.cool.value)" value = "<?php echo $wert; ?>" >

Und tatsächlich wird die php Variable die den Wert 5 hat im neuen Fenster ausgegeben.

Und es funktioniert ja weil beim aufmachen eines neuen Fenster wird ja praktisch neue Seite geladen - d.h. was dortrein als Quelcode mit write() geschrieben wurde wird zum Server geschickt - und dort wird php code interpretiert.

Jedoch scheitert's halt jetzt an zum Beispiel include - oder $_POST Variable .

Und ich hab jetzt gemerkt dass das Problem darin liegt dass der PHP Code in write()
noch im " Mutterfenster " versucht wird interpretiert zu werden - und das will ich grade vermeiden - das soll einfach nur als String von write() übernommen werden.

Wie schafft man das
 
HTML:
updateFenster.document.write(" <?php echo ' "+wert+" ';  ?> ");
Der PHP-Code der dort ausgegeben wird wird aber so direkt in den Browser geschrieben. Der wird nicht von PHP geparsed.
 
O doch leider schon, und zwar nicht dann wann es soll .
Den das hier ist die Ausgabe des Quelcodes der " Mutterseite " noch bevor ein fenster() aufgerufen wird:

Code:
<body>
	 	
<script language =" JavaScript">
<!--
	function fenster(wert){
	  updateFenster = window.open("","","width=400,height=200,left=600,screenY=450");		  updateFenster.document.open();
	  updateFenster.document.write("<html><body>");
	  updateFenster.document.write("  "+wert+" ");
	  updateFenster.document.close();
	}
//-->
</script>
	
<form action =" javascript_hello.html" method =" post">
 hier druecken <input type =" radio" name =" cool" onclick =" fenster('5')" value =" 5" >
</form>
	
</body>

In der Zeile wo Variable " wert " vorkommt - fehlen ja bereits <? php echo ... ?> - also wurde es nicht als String übernommen.

Und die Zeile
Code:
updateFenster.document.write(" <?php include('eingabe.php') ; ?>");

erzeugt folgendes:
Code:
updateFenster.document.write(" <br />
<b>Warning</b>:  main(eingabe.php): failed to open stream: No such file or directory in

das heißt er versucht die Datei echt zu includen - und das soll nicht passieren. -
Das soll er erst beim aufmachen des neuen Fensters machen - halt erst wenn die Funktion
fenster() aufgerufen wird - Und die Datei soll ins Code des neuen Fensters includet werden..
Kann man den php - Code irgendwie ausmarkieren - so das er beim aufmachen der "Mutterseite" unbemerkt bleibt?

Danke für eure Hilfe !
 
Es waere nett wenn Du Deine Loesung hier fuer die Nachwelt in die Wand kratzen koenntest, damit spaetere Generationen von Hoehlenscriptern Deine antiken Erkenntnisse bewundern koennen. ;)
 

Neue Beiträge

Zurück