webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » PHP (Moderatoren: Christian Felken, » тнє $υι¢ι∂є « ™)
|-+ Formular dynamisch erstellen?
Username:
Password:

Seiten: [1]
Topic Tools  
Read 18. August 2007, 13:13:43 #0
maxwell

Formular dynamisch erstellen?

Hallo Forum,

ich habe folgendes vor.

1. Eine Optionsgruppe aus 3 Elementen soll als Formular dargestellt werden.

Code:
<form action="test.php" method="post" name="Option">
  <INPUT type="radio" ID=1 value="1" name="O1" checked>Formular1
  <INPUT type="radio" ID=2 value="2" name="O1">Formular2
<input type="Submit" value="Aktion">
</form>
2. Ich möchte, dass durch das Ändern der Einstellungen im Formular (ändern der Radiobuttons) verschiedene Forms geladen werden.

Code:
<?php
 $sel 
$_POST["O1"];
 
if($sel=="1")
 
{
 
echo "<INPUT type='text'>";
 
}
 
else if($sel=="2")
 
{
 
echo "<INPUT type='text' value='test'>";
 
}
 
else if($sel=="0")
 
{
 
}
?>



Jetzt rufe ich die Seite auf und sie ist zunächst leer. Gut das liegt daran, dass noch kein "Ergebnis" (Value) der Optionsgruppe gepostet wurde. Jetzt soll man durch eine Auswahl (Rediobutton) das entsprechende Form laden können.

Das funzt jedoch nur bedingt. Gibt es für dieses Thema in php vielleicht einen anderen weg? Oder hat jemand für mich einen Denkanstoß?

Viele Grüße
Chris



Edit by ρнρ∂єνєℓσρєя: für Quellcodes bitte immer [ code]...[ /code] benutzen, DANKE
« Letzte Änderung: 19. August 2007, 10:14:25 von ρнρ∂єνєℓσρєя »
Offline  
Read 18. August 2007, 21:58:20 #1
Oetzi

Re: Formular dynamisch erstellen?

Verstehe das Problem noch nicht ganz?

1. Was genau funktioniert nicht?

2. Bei welchem Ablauf geht was net?

3. Wird das letzte input was je nach radiobutton innerhalb von nem <form>...</form> eingefügt?

Bitte also ein paar mehr Details dann können wir dir vllt helfen


Sag niemals nie, es sei denn du meinst es ernst?

Johannes Ott
Webmaster My Tie - Rock&Pop Covers
Webmaster Jugendkirche Nürnberg
Offline  
Read 19. August 2007, 02:41:17 #2
Daniel

Re: Formular dynamisch erstellen?

Habe das Script mal so probiert wie von Dir beschrieben, ausser:
im Php-Bereich habe ich die einfach und doppel Anführungszeichen getauscht.

Code:
<form action="test.php" method="post" name="Option">
  <INPUT type="radio" ID=1 value="1" name="O1" checked>Formular1
  <INPUT type="radio" ID=2 value="2" name="O1">Formular2
<?php
 $sel 
$_POST["O1"];
    if(
$sel=="1")
       {
       echo 
'<br><INPUT type="text">';
       }
    else if(
$sel=="2")
       {
       echo 
'<br><INPUT type="text" value="test">';
       }
?>

<br>
<input type="Submit" value="Aktion">
</form>

Funzt ohne Probleme im IE und FF

Daniel


Offline  
Read 19. August 2007, 03:06:25 #3
Daniel

Re: Formular dynamisch erstellen?

Hab das ganze nochmal etwas ausgeschmückt mit JS und PHP, so das das anklicken der Radio's das formular absendet und das aktive Radio auch angezeigt wird:
Code:
<form action="test.php" method="post" name="Option" id="FROMa">
  <INPUT type="radio" ID=1 value="1" name="O1" <?php if($_POST["O1"]=="1" || !$_POST["O1"]) echo ' checked'?> onclick="document.getElementById('FROMa').submit();">Formular1
  <INPUT type="radio" ID=2 value="2" name="O1" <?php if($_POST["O1"]=="2") echo ' checked'?> onclick="document.getElementById('FROMa').submit();" >Formular2
<?php
 $sel 
$_POST["O1"];
    if(
$sel=="1")
       {
       echo 
'<br><INPUT type="text">';
       }
    else if(
$sel=="2")
       {
       echo 
'<br><INPUT type="text" value="test">';
       }
?>

<br>
<input type="Submit" value="Aktion">
</form>

Dabei ist zu beachten, das der Wert des Inputfeldes geprüft werden muß um das Formular auswerten zu können.

http://www.d-stars.com/wmr/form_maxwell_01/test.php


Offline  
Read 19. August 2007, 19:20:33 #4
maxwell

Re: Formular dynamisch erstellen?

Hallo @ all,

super teil und funzt!
zum verständis:

<?php if($_POST["O1"]=="1" || !$_POST["O1"])

wenn ich das richtig verstanden habe wird hier zur laufzeit geprüft ob der radio-button gechecked ist?
möge mich jemand korregieren wenn es nicht an dem ist!

onclick="document.getElementById('FROMa').submit();

hier wird das handle des forms erhalten und ein submit per klick ausgeführt!
DOM/JS - wenn ich mich nicht recht irre?

Danke für die super Unterstützung!
Is'n schöner denkanstoß gewesen!


Vielen Dank an alle die Hilfe angeboten und geleistet haben!
Grüße
Chris
Offline  
Read 20. August 2007, 09:35:44 #5
Daniel

Re: Formular dynamisch erstellen?

Ja, Deine Ausführungen sind so richtig, ob es in der Praxis sich auch so umsätzen lässt steht auf einem anderen Blatt. Aber viel Spaß beim entwickeln!

Daniel


Offline  
Read 20. August 2007, 13:07:02 #6
maxwell

Re: Formular dynamisch erstellen?

Hallo Daniel,

Zitat
ob es in der Praxis sich auch so umsätzen lässt steht auf einem anderen Blatt

Was genau meinst Du damit?
Sollte an dieser Stelle etwa ein ander Weg genutzt werden?

Viele Grüße
Chris
Offline  
Read 20. August 2007, 15:11:26 #7
Oetzi

Re: Formular dynamisch erstellen?

Also von der grundsätzlichen Idee her ist dein code einwandfrei. Aber von der Umsetzung der ursprünglichen Idee würde ich einen anderen Weg wählen, denn was an deiner Umsetzung nämlich unschön ist, ist das um das entsprechende andere Formular zu bekommen die Seite komplett neu geladen werden muss. Das mag jetzt bei der Testseite wo nur das Formular vorhanden ist noch nicht so auffallen aber sobald das Formular nur ein Teil einer größeren Seite ist, ist das in Zeiten von immer mehr aufkommenden Web 2.0 und AJAX Seiten nicht mehr top. Ich würde eine Lösung vorziehen bei der die radiobuttons kein komplettes neuladen der seite verursachen sondern nur das Formular ändert.

Das kann grundsätzlich auf zwei arten passieren entweder du willst das ganze Formular ändern, also z.b. Textfelder hinzufügen oder entfernen dann würde ich das gesamte formular in einen div-bereich mit einer bestimmten id einbauen und dann innerhalb dieses div bereichs mit dem js-befehl innerHTML das Formular tauschen. oder du willst nur den Inhalt bestimmter Textfelder ändern dann gibst du dem entsprechenden Textfeld ne id und veränderst mit js nur das value.

Wo du die neuen Inhalte herbekommst hast du auch wieder zwei möglichkeiten. Entweder du codest die neuen Inhalte fest in dein Javascript rein falls diese immer feststehen. oder du lädst diese mit ajax dynamisch nach falls dazu irgendwelche berechnungen nötig sind.

Am besten du googlest mal nach AJAX ansonsten mach gerne nen neuen Beitrag im entsprechenden HTML/JS Forum auf!



Sag niemals nie, es sei denn du meinst es ernst?

Johannes Ott
Webmaster My Tie - Rock&Pop Covers
Webmaster Jugendkirche Nürnberg
Offline  
Read 21. August 2007, 23:12:14 #8
Daniel

Re: Formular dynamisch erstellen?

Zitat
Was genau meinst Du damit?

Sehr ausführlich erklärt von Oetzi

Daniel


Offline  
Read 22. August 2007, 09:56:35 #9
Oetzi

Re: Formular dynamisch erstellen?

Zitat
Was genau meinst Du damit?

Sehr ausführlich erklärt von Oetzi

Daniel

gern geschehen  Zwinkernd Hatte eh gerade nix besseres zu tun  Grinsend


Sag niemals nie, es sei denn du meinst es ernst?

Johannes Ott
Webmaster My Tie - Rock&Pop Covers
Webmaster Jugendkirche Nürnberg
Offline  
Seiten: [1]
Gehe zu: