2011-04-19 112 views
3

我想让我的复选框值保存在我的动态创建的输入上,并且我失败了。是的,我已经在线阅读了十几篇或更多的教程,但是我无法找到满足动态复选框列表的一个...请设置我的海峡!使用动态创建的复选框和数组维护复选框值

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="checkboxForm"> 
<?php 
$checkbox[] = array(); 
while($row = mysql_fetch_array($result)) { 

$checked = isset($_POST['checkbox']) ? " checked" : ""; 

echo "<input name=\"checkbox[]\" type='checkbox' value='" . $row['first_name'] . "'  $checked /> "; 
echo $row['first_name']; 
echo "<hr />"; 
//print_r($_POST['checkbox']); 
} 

if(isset($_POST['checkbox']) && !empty($_POST['checkbox'])) { 
foreach($_POST['checkbox'] as $checkbox){ 
echo $checkbox . "<br />"; 
} } 
?> 
+0

可以显示发布前你生成html? – 2011-04-19 05:21:11

+0

请检查更新! – 2011-04-19 05:46:21

回答

6

在这里你走了!

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="checkboxForm"> 
<?php 

    $chvalues = array(); 

    if(isset($_POST['checkbox'])) 
    { 
     foreach($_POST['checkbox'] as $ch => $value) 
     { 
      $chvalues[] = $value; 
     } 
    } 

    while($row = mysql_fetch_array($result)) 
     if(in_array($row['first_name'], $chvalues)) 
     { 
      echo "<input name=\"checkbox[]\" type='checkbox' value='" . $row['first_name'] . "' checked='checked'/> "; 
     } 
     else 
     { 
      echo "<input name=\"checkbox[]\" type='checkbox' value='" . $row['first_name'] . "'/> "; 
     }   
     echo $row['first_name']; 
     echo "<hr />";  

    } 

    if(isset($_POST['checkbox'])) { 
     foreach($_POST['checkbox'] as $checkbox => $val){ 
      echo $checkbox .':'.$val."<br />"; 
    } 
?> 
</form> 
+0

我看到你在做什么,但问题的一部分是需要保留的值作为first_name值。我不能使用计数器号码。 – OldWest 2011-04-19 05:26:36

+0

@OldWest,这个想法几乎是一样的,你可以发布你生成的HTML代码?也许我们可以从那里得到一些线索? – 2011-04-19 05:27:59

+0

<形式行动= “/ PHP/checkboxes_save_value.php” 方法= “POST” 名称= “checkboxForm”> 阵列 ( [0] =>麦克 [1] => Alycia ) <输入名称= “复选框[]” 类型= '复选框' 值= '麦克'/>麦克


阵列 ( [0] =>麦克 [1] => Alycia ) <输入名称= “复选框[]” 类型= 'checkbox'value ='Alycia'/> Alycia
Mike
Alycia
我对结果执行print_r操作。 – OldWest 2011-04-19 05:34:13

0
$checked = isset($_POST['checkbox']) && in_array($row['first_name'], $_POST['checkbox']) ? " checked" : ""; 
+0

Gaurav,我会在早上尝试这个。我喜欢这种方法,它比我原来的代码少得多。 – OldWest 2011-04-19 06:11:46