2010-12-14 79 views
1

我发现了一些代码来帮助我解决我遇到的问题..它是如此,如果表单不通过验证,它将保留我的复选框选择。现在我想知道如何在我可以放入mysql的表单中获得选择? 在我的形式 php数组从复选框到mysql

<?php 

$a = array("1*","2*","3*","4*","5*+"); 

foreach($a as $key => $value) 
{ 
    echo `"<input type='checkbox' name='rating[]' value='$value' `"; 

    if(is_array($_POST['rating']) && in_array($value,$_POST['rating'])) 
     echo " checked "; 

    echo ">$value"; 
} 
?> 

<INPUT TYPE="SUBMIT" name="submitted" VALUE="Submit" class="submit"> 
</form> 
</code> 
+0

如果您的值是在该数组中,您将得到相同的答案总而言之,所有将被'检查' – shevski 2010-12-14 21:21:25

回答

2

这是你问的是什么呢?

foreach($_POST['rating'] as $checked_value) 
{ 
    //do what you want to do with here like INSERT or UPDATE 
    echo $checked_value.'<br />'; 
} 

编辑: 也许太,这将帮助,如果你正在寻找做算术或分析的收视率

$a = array("1" => "1*", "2" => "2*", "3" => "3*", "4" => "4*", "5" => "5*+"); 

    foreach($a as $key => $value) 
    { 
     echo '<input type="checkbox" name="rating[]" value="'.$key.'"'; 

    /* replaced 
     if(is_array($_POST['rating']) && in_array($value,$_POST['rating'])) 
    with below */ 
     if(is_array($_POST['rating']) && in_array($key,$_POST['rating'])) 
      echo " checked "; 

     echo " />$value"; 
    } 

不知道为你实现这个代码,但你确定一个复选框正确的输入类型?也许单选按钮会更好,因为用户只能选择1个评分。按照当前设置,用户可以选择1,3和5作为他们的评分。

+0

+1为良好的一般点与“多个评级选择”位 – Bojangles 2010-12-14 21:27:35

+0

我正在寻找像1 ,3,5,你的foreach让我更接近,但它输出像135。是的,我希望这些可以多选。 – 2010-12-14 22:46:18

+0

我也尝试了$键而不是评分,但它把它全部抛出。它杀死复选框中的回发,我认为这是由于它是一个不同的值 – 2010-12-14 22:52:17