2010-12-14 73 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