2013-10-23 123 views
1

編輯:選擇或取消選擇複選框並在PHP中運行不同查詢

所以,我有多個複選框。我的目標是在MySQL中插入複選框值,如果未選中,則刪除MySQL中的複選框值。一切工作正常,除了刪除值。 PHP不知道哪些複選框是「未選中」的。任何想法?

到目前爲止,我有這樣的:

if(isset($_POST['values'])) 
{ 
    foreach($_POST['values'] as $checked) 
    { 
     $query5 = (" 
     INSERT INTO ecust_user_contract (fk_contract, fk_cust_user) 
     VALUES ('".$checked."','".$username_u."') 
     "); 
     $result5 = mysqli_query($conn,$query5); 
    } 
} 
if(!isset($_POST['values'])) 
{ 
    foreach($_POST['values'] as $unchecked) 
    { 
     $query5 = (" 
     INSERT INTO ecust_user_contract (fk_contract, fk_cust_user) 
     VALUES ('".$unchecked."','".$username_u."') 
     "); 
     $result5 = mysqli_query($conn,$query5); 
    } 
} 
+1

明白了。解決此問題的方法是每次對所有條目運行刪除查詢,然後僅插入已選中的條目。它的工作速度很快,因爲我的最大數量的複選框不超過10-15。 –

回答

1

假設你已經使用表單提交POST方法,你可以做這樣的事情:

HTML

<input type="checkbox" name="values[]" value="val1"> 
<input type="checkbox" name="values[]" value="val2"> 
<input type="checkbox" name="values[]" value="val3"> 

PHP

if(isset($_POST['values'])) { 
foreach($_POST['values'] as $checked){ 
mysqli_query("insert into tablename(value) values($checked)"); 
    } 
}else{ 
// use Delete query 
    } 
+1

這是我需要的結構,謝謝。它工作正常!謝謝。 –

0

我想你要提交一些HTML表單服務器端代碼在PHP。 如果你的HTML頁面的樣子:

<input type="checkbox" name="test" value="value1"> 

提交表格後,您可以檢查:

isset($_POST['test']) 
or 
if ($_POST['test'] == 'value1') 
+0

相應地運行您的查詢。 – Amit

2

這是我的複選框:

<input type='checkbox' name='Event' value='CB1' /> 

如果您處理的形式,讀這個你做:

$event = $_POST['Event']; 

此獲取複選框的值:

echo $event; 

但要確保它的設置或者你會得到一個空值。

如果你有幾個人可以做到這一點:

<input type='checkbox' name='Event[]' value='CB1' /> 
<input type='checkbox' name='Event[]' value='CB2' /> 

$event = array_values($_POST['Event']); 

而得到的數值爲每一個,把這個在for循環中:

for ($val = 0; $val < count($event); $val++) 
     { 
      //do something 
      echo $event[$val]; 
     } 
1

試試這個代碼:

<input type='checkbox' name='Event[]' value='CB1' /> 
<input type='checkbox' name='Event[]' value='CB2' /> 

使用多個複選框,在您的形式排列這樣。

提交表單後,請使用以下內容來檢查複選框是否被選中。

<?php 
     if(isset($_REQUEST['Event'])) 
     { 
       // do what you want for checked the boxes 
     } 
     else 
     { 
       // do what you want for not checked any box 
     } 
?> 

- 感謝

0

假設爲複選框的HTML代碼是這樣的:

<input type="checkbox" name="abc" value="yes" /> 

然後在PHP端:

<?php 
    if(isset($_POST['abc'])) { 
     --Connect to your database-- 
     --write your query for Insertion-- 
     } 
     else { 
     --Connect to your database-- 
     --write your query for Deletion-- 
     } 
    ?> 
0

工作,節省檢查並取消對mysql的價值

HTML:

<form method="post" action="jawab25.php"> 
<input type="hidden" name="check_lista[]" value="<?php echo $r["id"]?>"> 
<input type="checkbox" name="check_listb[]" value="<?php echo $r["id"]?>"> 
<input value="Check" type="Submit"> 

jawab25.php:

foreach($_POST['check_lista'] as $itema){ 
     $string="update trans set ck='N' where id='$itema'"; 
     $tampil=mysql_query($string); 
    } 

    foreach($_POST['check_listb'] as $itemb){ 
     $string="update trans set ck='Y' where id='$itemb'"; 
     $tampil=mysql_query($string); 
    } 
相關問題