2010-09-19 52 views
0

我知道這應該是一個容易的,但我沒有使它的工作。 我有以下形式:提交表格後顯示選定的值

<form action="" method="post"> 
<input type="checkbox" name="blades[]" value="2" />Blade AM-01 <br /> 
<input type="checkbox" name="blades[]" value="5" />Blade AM-02 <br /> 
<input type="checkbox" name="blades[]" value="10" />Blade KT-24 <br /> 
<input type="checkbox" name="blades[]" value="1" />Blade FR-98 <br /> 
<input type="checkbox" name="blades[]" value="66" />Blade PR-11 <br /> 
</form> 

提交後,我想再次顯示形式,並檢查用戶提交前的複選框的選中。我選擇的語言是PHP。

謝謝。

回答

1

像這樣的東西應該工作:

<form action="" method="post"> 
<input type="checkbox" name="blades[]" value="2" <?=(in_array("2", $_POST['blades']) ? "checked='checked'" : "") ?> />Blade AM-01 <br /> 
<input type="checkbox" name="blades[]" value="5" <?=(in_array("5", $_POST['blades']) ? "checked='checked'" : "") ?> />Blade AM-02 <br /> 
<input type="checkbox" name="blades[]" value="10" <?=(in_array("10", $_POST['blades']) ? "checked='checked'" : "") ?> />Blade KT-24 <br /> 
<input type="checkbox" name="blades[]" value="1" <?=(in_array("1", $_POST['blades']) ? "checked='checked'" : "") ?> />Blade FR-98 <br /> 
<input type="checkbox" name="blades[]" value="66" <?=(in_array("66", $_POST['blades']) ? "checked='checked'" : "") ?> />Blade PR-11 <br /> 
</form> 
0

如果我選擇的前三個複選框,然後$_POST將是:

Array ([blades] => Array ([0] => 2 [1] => 5 [2] => 10)) 

如果我選擇第一,第三和第五複選框:

Array ([blades] => Array ([0] => 2 [1] => 10 [2] => 66)) 

這與做

print_r($_POST); 

正如您所見,$_POST['blades']是一個包含每個選定值的數組。

我完整的測試代碼爲:

<form action="" method="post"> 
<input type="checkbox" name="blades[]" value="2" />Blade AM-01 <br /> 
<input type="checkbox" name="blades[]" value="5" />Blade AM-02 <br /> 
<input type="checkbox" name="blades[]" value="10" />Blade KT-24 <br /> 
<input type="checkbox" name="blades[]" value="1" />Blade FR-98 <br /> 
<input type="checkbox" name="blades[]" value="66" />Blade PR-11 <br /> 
<input type="submit"> 
</form> 
<?php print_r($_POST); ?> 
0
<?php $blades = $_POST["blades"]?> 
<form action="" method="post"> 
<input type="checkbox" name="blades[]" <?php if($blades[0]==2):?>checked="checked"<?php endif?> value="2" />Blade AM-01 <br /> 
<input type="checkbox" name="blades[]" <?php if($blades[1]==5):?>checked="checked"<?php endif?> value="5" />Blade AM-02 <br /> 
<input type="checkbox" name="blades[]" <?php if($blades[2]==10):?>checked="checked"<?php endif?> value="10" />Blade KT-24 <br /> 
<input type="checkbox" name="blades[]" <?php if($blades[3]==1):?>checked="checked"<?php endif?> value="1" />Blade FR-98 <br /> 
<input type="checkbox" name="blades[]" <?php if($blades[4]==66):?>checked="checked"<?php endif?> value="66" />Blade PR-11 <br /> 
</form> 
+0

啊,但是...'$葉片[N]'可能不是你期望。 '$刀片[3]'只有'1',如果我選擇了之前的所有三個複選框。如果我只選擇了第一個和第四個,那麼'$ blades [1]'實際上是'1',因爲第二個和第三個未選中的複選框在數組中沒有位置。 – 2010-09-19 10:49:10

+0

是的。沒想到這一點。 – dekomote 2010-09-19 11:09:10