2015-09-08 47 views
0

我想用複選框創建行。 如果未勾選複選框,並且您檢查的值在SQL中已更改,反之亦然。PHP行復選框

我有這樣的:

<?php 
 

 
if ($Row['vip'] == 1) 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t echo "<td style='text-align: center;' width='5%'><input type='checkbox' name='vip[]' value='1' checked='checked' /></td>"; 
 
\t \t \t \t \t } 
 
\t \t \t \t \t else 
 
\t \t \t \t \t { 
 
\t \t \t \t \t \t echo "<td style='text-align: center;' width='5%'><input type='checkbox' name='vip[]' value='0' /></td>"; 
 
\t \t \t \t \t } 
 
?>

Checkbox.php

<?php 
 
\t require('config.php'); 
 

 
\t $iConnection = mysqli_connect($_HOST_,$_USER_,$_PASS_,$_MYDB_) or die("<link rel='stylesheet' type='text/css' href='css/style.css'><h4>Rank not found.</h4>"); 
 
\t 
 
\t if($checkbox1 = $_POST['vip']; 
 
\t { 
 
\t for ($i=0; $i<sizeof($checkbox1);$i++) 
 
\t $query="INSERT INTO mytable (vip) VALUES ('".$checkbox1[$i]."')"; 
 
\t mysqli_query($iConnection, $query) or die (mysqli_error()); 
 
\t } 
 
\t echo "Record is inserted"; 
 
\t } 
 
?>

+0

一件事,你要指定在這裏'如果($ checkbox1 = $ _ POST [ 'VIP'];'而不是比較。但是,這不是正確的語法,並且分號會阻止您的代碼進一步執行。更不用說丟失的支架。 –

+0

我想每次點擊一個複選框來檢查或取消選中,就更新mytable。 – v4N3k

回答

0

未選中複選框-ES通過POST或G不發送ET

<td style='text-align: center;' width='5%'> 
<input type="checkbox" name="vip" value="1" <?= ($Row['vip']) ? 'checked="checked"' : ''; ?> /> 
</td> 

現在檢查$ _ POST [ 'VIP']在Checkbox.php

$vip = (isset($_POST['vip'])) ? $_POST['vip'] : 0; 

UPDATE

,因爲你正在使用<?PHP並使用回聲

你必須做休閒荷蘭國際集團

<?php 

    $vip_checked = ($Row['vip']) ? 'checked="checked"' : ''; 
    echo '<td style="text-align:center;" width="5%"><input type="checkbox" name="vip" value="1" '.$vip_checked.' /></td>'; 
+0

ustmaestro因爲我在<?php 我需要做一個回聲。哪裏不對? echo「 />「; 而我把這個放在哪裏? $ vip =(isset($ _ POST ['vip']))? $ _POST ['vip']:0; – v4N3k

+0

檢查答案更新 – ustmaestro

+0

ustmaestro現在感謝工作。 但知道如何檢查並取消選中行VIP並更新我的SQL表? – v4N3k

0

多複選框MANIPULATION

<?php 
// View.php 
// SELECTED users via query "SELECT * FROM mytable" 
$Rows = [ 
    ['user_id' => 1, 'vip' => 1], 
    ['user_id' => 2, 'vip' => 0], 
    ['user_id' => 3, 'vip' => 0], 
    ['user_id' => 4, 'vip' => 1], 
    ['user_id' => 5, 'vip' => 1], 
]; 

foreach($Rows as $Row){ 

     $vip_checked = ($Row['vip']) ? 'checked="checked"' : ''; 
     echo '<td style="text-align:center;" width="5%"><input type="checkbox" name="vip['.$Row['user_id'].']" value="1" '.$vip_checked.' /></td>'; 
} 

?> 

<?php 
// Checkbox.php 
// SELECTED users via query "SELECT * FROM mytable" 
$Rows = [ 
    ['user_id' => 1, 'vip' => 1], 
    ['user_id' => 2, 'vip' => 0], 
    ['user_id' => 3, 'vip' => 0], 
    ['user_id' => 4, 'vip' => 1], 
    ['user_id' => 5, 'vip' => 1], 
]; 
// check if at least one ckeckbox is checked 
$vip = isset($_POST['vip'])?$_POST['vip']:[]; 

// CHECKING $_POST FOR CHANGES 
foreach($Rows as $Row){ 
    $vip_checked = array_key_exists($Row['user_id'],$vip)?$vip['user_id']:0; 
    $query = 'UPDATE mytable SET vip='.$vip_checked' WHERE user_id = '.$Row['user_id']; 
    // execute query 
} 
+0

usmaestro這是我所需要的,但我不能讓這項工作-.-' 因爲我不想發佈我的完整代碼在這裏,我會把我的電子郵件。 請給我發一封電子郵件,我可以寄給你完整的代碼。 Mail:[email protected] – v4N3k

+0

您的服務器似乎已被我的郵件拒絕 發送您的代碼在ustmaestro(at)gmail.com – ustmaestro

+0

檢查是否已收到電子郵件。 – v4N3k