2014-09-24 91 views
0

我在PHP文件複選框的表中的數組是這樣的:計數選中的複選框(陣列)號和節能選中的複選框

echo "<td $Blocked><input type =\"checkbox\" name=\"Blocked[]\" value=\"checkblock\" /></td>";

我試圖讓選中的複選框的數量的值並保存到數據庫。

$Blocked = 'unchecked'; 

if ((isset($_POST['edit_tc']))) { 
    if (isset($_POST['Blocked'])) { 
     if (is_array($_POST['Blocked'])) { 
      foreach($_POST['Blocked'] as $value) { 
       error_log($value); 
      } 
     } 
     else { 
      $value = $_POST['Blocked']; 
      error_log($value); 
     } 

     $Blocked = 'checked'; 
    } 
} 

「edit_tc」是提交按鈕。

當用戶選中複選框&點擊提交按鈕將其保存到表格列時,我如何獲取它的數量?

+0

這個鏈接可以幫助你:http://stackoverflow.com/questions/18382979/get-check-box-value-if-checked – 2014-09-24 09:55:42

+0

@William非常感謝! 我有另一個關於如何在點擊提交後保存選中複選框的狀態的查詢。 – BVee 2014-09-24 10:12:07

+0

是否要保存逗號分隔的格式,如2,4,10,14? – 2014-09-24 10:16:55

回答

0

我想下面的代碼將解決你所有的問題。

<?php 
$hello = array(); 
if(isset($_POST['submit'])) { 
    extract($_POST); 
    print_r($hello); //print all checked elements 
} 
?> 

<form method="post"> 
    <input type="checkbox" name="hello[]" value="1" <?php if(in_array(1, $hello)){ echo 'checked'; } ?>> 
    <input type="checkbox" name="hello[]" value="2" <?php if(in_array(2, $hello)){ echo 'checked'; } ?>> 
    <input type="checkbox" name="hello[]" value="3" <?php if(in_array(3, $hello)){ echo 'checked'; } ?>> 
    <input type="checkbox" name="hello[]" value="4" <?php if(in_array(4, $hello)){ echo 'checked'; } ?>> 
    <button type="submit" name="submit" value="Submit">Submit</button> 
</form> 

你必須檢查你使用的是PHP的in_array功能得到複選框陣列內的每個複選框的值。

如果您需要了解整個事情,請讓我知道。

很高興幫助你。

問候。

+0

我沒有使用不同的值。我在表格數據中使用了一個單值,即'value = \「checkblock \」​​ 所以它顯示爲一個帶有單個值的複選框。 – BVee 2014-09-24 10:48:07

+0

@BVenky,你使用多個相同值的複選框嗎? – 2014-09-24 10:49:02

+0

@Shaunak,是的,你是對的。但我在表列中使用它。 – BVee 2014-09-24 10:51:01

0

您可以使用此方法...

if ((isset($_POST['edit_tc']))) { 
    if (isset($_POST['Blocked'])) 
    { 
    $data = $_POST['Blocked']; 
    foreach ($data as $checkedValue) 
    { 
    $qry = mysql_query("INSERT INTO `Table_name` WHERE `column_id` = '$checkedValue'"); 
    } 
    } 
} 

這是將用於保存每個值作爲不同的記錄...你可以修改,如果需要的方法。

0

您可以簡單地使用count()函數來獲取用戶檢查的複選框總數。 由於只有那些複選框值發佈到提交頁面,並且用戶已選中並且未選中複選框,則不會提交其值。即未提交的複選框將不會在提交的頁面上存在。

用途:

$totalCheckboxChecked=count($_POST['Blocked']);