2015-04-21 72 views
2

我想要它,所以如果複選框爲NULL或0,它不是一個喜歡它會是如果值是一個。 另外,有沒有辦法將選中的方框限制爲10?複選框爲空意味着它不是,複選框檢查是1

當前代碼:

if(isset($_POST['submit'])){//to run PHP script on submit 
    if(!empty($_POST'favorites')){ 
    // Loop to store and display values of individual checked checkbox. 
     foreach($_POST['favorites[]'] as $selected){ 
      $query= "UPDATE u_collection SET fav = 0 WHERE username ='".$username."'"; 
      mysqli_query($db,$query); 
     } 
    } 
} 

foreach($gems as $i){ 
    echo '<tr> 
    <th>'.$i->name.'</th> 
    <th><form action="collection.php" method="post"> 
    <input type="checkbox"'; 
    if($i -> fav){ 
     echo 'checked = "checked"';   
    } 
    echo 'name="favorites[]" value='.$i->name.'></th></tr></form>'; 
} 
?> 
<th> 
<input type='submit' name='submit' value='Submit'/> 
</form> 
+0

'$ i - > fav'是一個字符串嗎?你可以在$ gems循環之外創建一個計數器變量,然後在每個「if($ i - > fav){」符合。你的'$ username'看起來好像可能會讓你注入SQL。 – chris85

+0

對不起,也許我太累了,但我很難遵循你的意思(儘管聽起來合乎邏輯!)。你能告訴我一個例子嗎?也許這可以幫助我一點。 – icoder

+0

如何獲得複選框的值應該是這條線附近的錯誤if(!empty($ _ POST'favorites')){'它一定是'if(!empty($ _ POST ['favorites'])) {' – Noman

回答

0

要檢查它是否是NULL,否則爲0 1 I將使用空()函數

foreach($gems as $i){ 
    echo '<tr> 
    <th>'.$i->name.'</th> 
    <th><form action="collection.php" method="post"> 
    <input type="checkbox"'; 
    if(!empty($i->fav)){ 
     echo ' checked = "checked" ';   
    } 
    echo 'name="favorites[]" value='.$i->name.'></th></tr></form>'; 
} 

要限制其檢查,以10的盒,我將使用JavaScript(jQuery),如下所示:

<script src="http://code.jquery.com/jquery-1.11.2.min.js"></script> 
<script> 
    $('form input[type=checkbox]').on('click', function(){ 
     if ($('form input[type=checkbox]:checked').length > 10) 
     { 
      $(this).removeAttr('checked'); 
      alert('You are only allowed to select 10 checkboxes'); 
     } 
    }); 
</script>