2010-12-12 11 views
0

Wie kann ich nur Werte der Formularfelder erhalten, die Kontrollkästchen markiert haben?Mehrfachformular Textfeld

Form:

<form id="form" name="form" method="post" action=""> 

<input type="text" name="textfield[]" value="textf 1"/> 
<textarea name="textarea[]" cols="45" rows="5">some text 1</textarea> 
<input name="check[]" type="checkbox" value="checkb 1" /> 

<input type="text" name="textfield[]" value="textf 2" /> 
<textarea name="textarea[]" cols="45" rows="5">some text 2</textarea> 
<input name="check[]" type="checkbox" value="checkb 2" /> 

<input type="text" name="textfield[]" value="textf 3"/> 
<textarea name="textarea[]" cols="45" rows="5">some text 3</textarea> 
<input name="check[]" type="checkbox" value="checkb 3" /> 

</form> 

Ich möchte Formularfeldwerte für bestimmte Textfeld und Textfeld bekommen. Zum Beispiel, wenn ich das erste und letzte Kontrollkästchen in diesem Beispiel ankreuze. Wie kann ich das mit PHP machen?

Dann führen sollte:

textf 1 
some text 1 
checkb 1 

textf 3 
some text 3 
checkb 3 

Antwort

2

Geben Sie Ihre Kontrollkästchen und Textfelder Indizes gesetzt, so wissen Sie einfach die Checkbox entspricht welcher Form.

<input type="text" name="textfield[0]" value="textf 1"/> 
<textarea name="textarea" id="textarea[0]" cols="45" rows="5">some text 1</textarea> 
<input name="check[0]" type="checkbox" value="checkb 1" /> 

<input type="text" name="textfield[1]" value="textf 2" /> 
<textarea name="textarea" id="textarea[1]" cols="45" rows="5">some text 2</textarea> 
<input name="check[1]" type="checkbox" value="checkb 2" /> 

Dann können Sie schnell überprüfen, ob eine bestimmte Option festgelegt ist, und mit dem zugehörigen Textfeld etwas tun.

foreach ($_POST['textfield'] as $idx => $value) { 
    echo $_POST['textfield'][$idx] . "<br />"; 
    echo $_POST['textarea'][$idx] . "<br />"; 
} 

Das wird nur die Textfelder drucken, die Textfelder überprüft, da diejenigen, die nicht überprüft wurden, sind nicht in $ _POST.

+0

Ich habe versucht, den ganzen Tag zu lösen. Vielen Dank Dan. – Sergio