Vorschau in <form> erzeugen!

sblaui

Mitglied
Hallo, ich möchte gerne in meinen Formular einen 2. button einfügen, auf dem man eine Vorschau erzeugen lassen aknn. entweder in einer neuen seite, oder als Popup! Wie mache ich das! Habe nichts passendes gefunden!

Hier das Formular:

PHP:
<form action="http://www.hw-center.com/Scripte/Webwatch/work.php" method=post>
<font class="navitop">
Artikel<br>
<input type=text name="Array[artikel]" size= 100><br>
<br>Seite<br>
<input type=text name="Array[seite]" size= 100><br>
<br>Link<br>
<input type=text name="Array[link]" size= 100><br>
<br>Bild-Url<br>
<input type=text name="Array[bild]" size= 100><br>
<br>Text<br>
<textarea rows="8" name="Array[inhalt]" cols="80"></textarea>
<br><br>
<input type=submit name="SUBMIT" value="Absenden">
</font></form>
</body>
</html>
 
Entweder du machst es so dass immer eine Vorschau kommt bevor das Formular abgeschickt wird oder du machst es irgendwie mit Java-Script das eine bestimmte Funktion aufgerufen wird und das Form auch gesendet...Ich kann Dir aber dabei nicht helfen, frage dazu am besten im JavaScript Forum nach!
 
Füg in deinem Formular einen weiteren Button ein, und zwar so:

PHP:
<input type="button" name="vorschau" value="Vorschau" size="20" onClick=window.open("http://www.hw-center.com/Scripte/Webwatch/work.php?vorschau=Vorschau","Vorschau","width=400,height=400")>

Dann fügst du in deinem Skript folgendes ein:

PHP:
<?
if($vorschau == "Vorschau") {
?>
<table border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td>Vorschau</td>
  </tr>
  <tr>
    <td><? echo $Array[artikel]; ?></td>
  </tr>
  <tr>
    <td><? echo $Array[seite]; ?></td>
  </tr>
  <tr>
    <td><? echo $Array[link]; ?></td>
  </tr>
  <tr>
    <td><? echo $Array[bild]; ?></td>
  </tr>
  <tr>
    <td><? echo $Array[inhalt]; ?></td>
  </tr>
</table>
<?
}
?>

Ich hoffe, ich konnte dir helfen.
 
Zuletzt bearbeitet:
PHP:
<FORM NAME="Form">
<INPUT NAME="INPUT">
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Absenden">
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Vorschau">
</FORM>

Und im Script einfach den Fall $Action == Absenden und $Action == Vorschau abdecken...

Meinstest du so etwas?
 
Wie soll das denn gehen?

1. Wurde das Formular noch gar nicht abgeschickt und
2. Übergibst du überhaupt keine Werte welche du in der Vorschau.php anzeigen könntest...

hm...? :(

hehe, ja so sollte es gehen! :-) Da bin ich noch gar nie drauf gekommen...

Original geschrieben von EngelchenB
PHP:
<FORM NAME="Form">
<INPUT NAME="INPUT">
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Absenden">
<INPUT TYPE="SUBMIT" NAME="Action" VALUE="Vorschau">
</FORM>


Und im Script einfach den Fall $Action == Absenden und $Action == Vorschau abdecken...

Meinstest du so etwas?
 
ja aber ich muss doch 2 actions hinzufügen ;)

Und so habe ich ja nur eine wie ich es oben bei mir habe

@shorty

Wo soll ich das zweite einfügen. danach Also nach meinem Script!
 
aso und an EngelchenB : ich bearbeite die Daten in die DB in einer extra seite, da geht das nicht so wie du es willst, da ich die Daten von der eingabe.php an die work.php schicke und die work.php die daten eintrgägt! Sonst nicht schlecht, kann aber beides nicht kombinieren! Was du oben siehst ist die eingabe.php!
 
work.php:
PHP:
<?
if($_POST['action'] == "vorschau") {
 // Vorschau aus $_POST Array erzeugen
} elseif($_POST['action'] == "senden") {
 // Daten in DB einfügen
}
So und nicht anders :)
 
Original geschrieben von sblaui
ja aber ich muss doch 2 actions hinzufügen ;)

Und so habe ich ja nur eine wie ich es oben bei mir habe

@shorty

Wo soll ich das zweite einfügen. danach Also nach meinem Script!

Machen wir das jetzt ganz anders :). Ich habe vorhin erst gesehen, dass ich total den Mist gebaut habe :).

Nimm am Besten den Code hier und ersetzt ihn durch deinen. Habe ihn getestet, bei mir funktioniert alles einwandfrei (allerdings hast du hierbei keine Vorschau in einem neuen Fenster):

PHP:
<? 
if(isset($vorschau)) { 
?>
<table border="0" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td>Vorschau</td> 
  </tr> 
  <tr> 
    <td>Artikel: <? echo $Array[artikel]; ?></td> 
  </tr> 
  <tr> 
    <td>Seite: <? echo $Array[seite]; ?></td> 
  </tr> 
  <tr> 
    <td>Link: <? echo $Array[link]; ?></td> 
  </tr> 
  <tr> 
    <td>Bild: <? echo $Array[bild]; ?></td> 
  </tr> 
  <tr> 
    <td>Inhalt: <? echo $Array[inhalt]; ?></td> 
  </tr> 
</table>
<br>
<form action="<? echo $PHP_SELF; ?>" method="post"> 
<font class="navitop"> 
Artikel<br> 
<input type=text name="Array[artikel]" value="<? echo $Array[artikel]; ?>" size= 100><br> 
<br>Seite<br> 
<input type=text name="Array[seite]" value="<? echo $Array[seite]; ?>" size= 100><br> 
<br>Link<br> 
<input type=text name="Array[link]" value="<? echo $Array[link]; ?>" size= 100><br> 
<br>Bild-Url<br> 
<input type=text name="Array[bild]" value="<? echo $Array[bild]; ?>" size= 100><br> 
<br>Text<br> 
<textarea rows="8" name="Array[inhalt]" cols="80"><? echo $Array[inhalt]; ?></textarea> 
<br><br> 
<input type="submit" name="vorschau" value="Vorschau" size="20"> 
<input type="submit" name="SUBMIT" value="Absenden"> 
</font></form> 
</body> 
</html>
<?
} else {
  if(isset($SUBMIT)) {
    // Daten in DB eintragen
  } else {
?>
<form action="<? echo $PHP_SELF; ?>" method=post> 
<font class="navitop"> 
Artikel<br> 
<input type=text name="Array[artikel]" size= 100><br> 
<br>Seite<br> 
<input type=text name="Array[seite]" size= 100><br> 
<br>Link<br> 
<input type=text name="Array[link]" size= 100><br> 
<br>Bild-Url<br> 
<input type=text name="Array[bild]" size= 100><br> 
<br>Text<br> 
<textarea rows="8" name="Array[inhalt]" cols="80"></textarea> 
<br><br> 
<input type="submit" name="vorschau" value="Vorschau" size="20"> 
<input type="submit" name="SUBMIT" value="Absenden"> 
</font></form> 
</body> 
</html> 
<? 
  }
}
?>
 
Vielleicht so?:
Code:
<html>
<head>
<title>test</title>
<script type="text/javascript">
<!--
var actions=new Array();
actions[0]=new Array('http://www.hw-center.com/Scripte/Webwatch/work.php','_self');
actions[1]=new Array('http://www.hw-center.com/Scripte/Webwatch/vorschau.php','popper');

function aktion(e,o)
{
if(e)
    {
    pop=window.open('','popper','width=300,height=300');
    pop.focus();
    }
o.action=actions[e][0];
o.target=actions[e][1];
o.submit();
}
//-->
</script>
</head>
<body>
<form method="post">
<!-- Formularinhalt -->
<input type="button"onclick="aktion(0,this.form)"value="senden">
<input type="button"onclick="aktion(1,this.form)"value="vorschau">
</form>
</body>
</html>
Beim Klick auf Vorschau wird ein Popup geöffnet, die "action" des Formulars auf "vorschau.php" gesetzt und
das "target" des Formulars auf "popper"...(das Popup)....wohin dann das Formular gesendet wird.

Beim Klick auf "senden" wird "action" auf "work.php" und das "target" auf "_self" gesetzt, und dann das Formular
gesendet...an work.php im selben Fenster.

....vorrausgesetzt, Javascript ist an, und es gibt eine "vorschau.php"
falls die "work.php" auch die Vorschau anzeigt, müsste man halt ne Variable in nem versteckten Formularfeld mitschicken,
damit sie weiss, was sie tun soll.

Vielleicht isses ja das, was du meintest.
 
Zurück