Übermittletes Array -> explode -> Checkboxen erstellen

IT_ITALIA

Grünschnabel
Hi leute..

Ich hab ein Problem und zwar:

Ich möchte mehrere Werte (getrennt mit Komma) von einem Textfeld übertragen.

HTML:
<FORM name="input" method="get" action="index2.php">
PHP:
<?php

for ($i=0;$i<$_GET['anz'];$i++)
	{   echo							"<input type='text' name='box2".$i."'>
										<p><strong>Pflichtfeld<input type='checkbox' name='req".$i."'/></strong></p>
										<select name='typ2".$i."'>
										<option value='default' >Typ</option>
										<option value='string' >String</option>
										<option value='integer' >Integer</option>
										<option value='radiob' >Radio-Button</option>
										<option value='checkb' >Check-Box</option>
										</select><br/><br/><br/>";
										}
	echo "<input type='hidden' value='$anzahl' name='anz'/>";								
?>
HTML:
  <input type="submit" value="absenden" />
</form>

In dem PHP-Formular gebe ich im textfeld z.B: Herr,Frau ein und bei der optionauswahl wähle ich Check-Box aus.. danach submit.

Nun werden auf der nächsten PHP-Seite die Werte übermittelt und verarbeitet:

PHP:
<?php

for ($i=0;$i<$anzahl;$i++)
// hier kontrolliert es ob ein Wert in der ersten Box eingetragen ist
if (isset($_GET["box2$i"]) and strlen($_GET["box2$i"]))
{
?>
HTML:
<FORM name="input" method="get" action="index3.php">
<br><strong> <?php echo ($_GET["box2$i"]) ?></strong><br/>
PHP:
<?php
if ($_GET["typ2$i"] == "default")
{	echo "Waehlen Sie bitte ein Feld-Typ aus!";
}
if($_GET["typ2$i"] == "string")
{	echo "<input type=";
}
if($_GET["typ2$i"] == "integer")
{	echo "<input type='number' name'typus' min='0' max='9'";
}
if($_GET["typ2$i"] == "radiob")
{	echo "<input type='radio'";
}
//PHP erkennt das ich bei den optionvalues das Check-Box ausgewählt habe
//und erstellt mir eine Checkbox bei der oben Herr,Frau steht...
if($_GET["typ2$i"] == "checkb")
{	explode(',',$_GET['box20']);
	echo "<input type='checkbox' name='chckb' value='Array[0]';
		  <input type='checkbox' name='chckb' value='Array[1]'";
}
}
?>

als kontrolle ob diese zwei Werte welche ich exploden tue wirklich getrennt werden habe ich ganz oben bei meinem Code folgendes eingefügt:

PHP:
print_r(explode(',',$_GET['box20']));

und die Ausgabe auf der Seite ist:

Array ( [0] => eins [1] => zwei )

sprich: es wird getrennt..

Wie kriege ich es nun hin, dass es mir zwei Checkboxen mit jeweils dem einten Wert(Herr) und auch dem anderen(Frau) erstellt..



Ich wäre sehr dankbar für jede hilfestellung..



alessandro
 
Ich hab dein Problem leider nicht verstanden, aber ich weiß nicht, ob dir bewusst sind, dass PHP auch arrays in den name-Attributen der form versteht.

Also

<input type="text" name="box[]" />
<input type="text" name="box[]" />

Macht in PHP auf $_POST['box'] auch wiederum ein array, dass du zB mit foreach durchlaufen kannst.
 
MeinProblem:

im Array box0 ist ein Wert aber er führt die forschleife nicht aus.. ich denke beim

if (isset($_GET["box$i"]) and strlen($_GET["box$i"]))

muss ich das box$i anderst zusammenhängen damit es erkennt wird.. hat jemand ne idee..? (wenn ich if (isset($_GET["box0"]) schreibe dann nimmt ers an..)

Hier der ganze Code:



PHP:
<?php
for ($i=1;$i<$anzahl;$i++)
if (isset($_GET["box$i"]) and strlen($_GET["box$i"]))
{
?>
HTML:
<FORM name="input" method="get" action="index3.php">
<br><strong> <?php echo ($_GET["box$i"]) ?></strong><br/>

Wird das gehen bei den lezten zwei If schleifen?
PHP:
<?php
if ($_GET["typ$i"] == "default")
{	echo "Waehlen Sie bitte ein Feld-Typ aus!";
}
if($_GET["typ$i"] == "string")
{	echo "<input type='text' name='sting' value='Bitte füllen Sie das Feld aus'";
}
if($_GET["typ$i"] == "integer")
{	explode(';',$_GET["value$i"]);
    echo "<input type='text' name='integer' value='Bitte füllen Sie das Feld aus'";
}
if($_GET["typ$i"] == "radiob")
                       //$_GET[0] und $_GET[1] sind das Ergebnis von (explode(';',$_GET['value2'])); das value2 sollt auch anstatt das 2 mit ner variable stehen... (value$i)
{	echo "<strong>"$_GET[0]"<input type='radio' name='radio' </strong>
		  <strong>"$_GET[1]"<input type='radio' name='radio' </strong>";
}
if($_GET["typ$i"] == "checkb")
{	explode(';',$_GET["value$i"]);
                     //$_GET[0] und $_GET[1] sind das Ergebnis von (explode(';',$_GET['value2'])); das value2 sollt auch anstatt das 2 mit ner variable stehen... (value$i)
	echo "<strong>"$_GET[0]"<input type='checkbox' name='chckb' </strong>
		  <strong>"$_GET[1]"<input type='checkbox' name='chckb' </strong>";
}
}
?>
 
Zurück