2014-10-07 55 views
0

我有一個基於我想在sql表中進行搜索的複選框。如何基於多個複選框進行搜索

<input name="pc[]" type="checkbox" value="1">I &nbsp &nbsp &nbsp 
<input name="pc[]" type="checkbox" value="2">II &nbsp &nbsp &nbsp 
<input name="pc[]" type="checkbox" value="3">III 

如果複選框1被選中,則查詢應該是這樣的

$result=$mysql_query="SELECT * FROM students1 WHERE PartCode IN ('1') "; 

如果複選框1和2被打勾那麼查詢應該是這樣的

$result=$mysql_query="SELECT * FROM students1 WHERE PartCode IN ('1', '2') "; 

爲此,我寫了下面的代碼。但它不工作。

$ad = implode ("','",$_POST['pc']); 
$result=mysql_query("SELECT * FROM students1 WHERE PartCode IN ('$ad') "); 

如何編輯代碼?

+1

所以這裏有什麼問題?你有錯誤嗎?錯誤的結果? – Mureinik 2014-10-07 05:31:16

+0

你在'$ ad'中得到了什麼。只是回顯結果是顯示正確的複選框值。 – Gowri 2014-10-07 05:32:24

+0

我得到警告:implode():無效參數傳遞.... – 2014-10-07 05:37:13

回答

0

刪除查詢中引號爲$ad。此外,你的內爆並沒有把值放在引號內。所以,用下面的代碼試試:

$ad = "'" .implode("', '", $_POST['pc']) . "'"; // outputs '1', '2' etc 
$result=mysql_query("SELECT * FROM students1 WHERE PartCode IN ($ad) "); 
0
<input name="pc[]" type="checkbox" value="1">I &nbsp &nbsp &nbsp 
<input name="pc[]" type="checkbox" value="2">II &nbsp &nbsp &nbsp 
<input name="pc[]" type="checkbox" value="3">III 

<script> 

jQuery("input[type=checkbox]").click(function(){ 
     var selectedCheckBoxArray = new Array(); 
     var n = jQuery("input[type=checkbox]:checked").length; 
     if (n > 0){ 
      jQuery("input[type=checkbox]:checked").each(function(){ 
       selectedCheckBoxArray.push($(this).val()); 
      }); 
      //send check box data value array to server using Ajax 

      $.ajax({ 
        type: "POST", 
        url: "server_file.php", 
        data: { myCheckboxes:selectedCheckBoxArray }, 
        success: function(data){ 
         $('#myResponse').html(data); 
        } 
      }); 

     } 

    }); 
</script>