[英]How to retrieve the checked state of a checkbox from a Html form and store it in a database?
[英]how to retrieve Checkbox checked event stored in database
我只是在項目中缺少幾行代碼。 我有復選框和提交按鈕。 用戶單擊復選框,然后單擊將過濾選項。 我將復選框檢查的結果作為序列化數組存儲到數據庫中,並將其作為反序列化數組存儲到數據庫中,因此每當刷新頁面時,我都會正確獲取過濾器復選框結果。 唯一的問題是,刷新頁面時我的復選框未顯示為選中狀態。 它正確顯示結果並將其存儲到數據庫中,但我無法維護該復選框事件。 我想我在html輸入類型中缺少1行代碼。我的反序列化數組存儲在$ config變量中。 這是我的代碼:html代碼:
if($param['aktion'] == 'get-widget-vehicle-edit')
{
$page['register-fahrzeuge'] = array(
0 => array( 'FAHRZEUGE','enabled',$page['script'],''),
1 => array( 'EDIT-FAHRZEUGE','aktiv',$page['script'],'',''),
);
$html = '<table width="538" cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<div>'.CreateRegister($page['register-fahrzeuge']).'</div>
'.CreateMessage().'
<div class="cont-liste-verlauf register">
<table id="FAHRZEUGE" >
<tr>
<td>';
<table id="FAHRZEUGE" >
<tr>
<td>
<input type="checkbox" name="Anzahl_Fahrzeuge_ohne_Bilder" id="Anzahl_Fahrzeuge_ohne_Bilder" checked />
<label for="Anzahl_Fahrzeuge_ohne_Bilder">Anzahl_Fahrzeuge_ohne_Bilder</label><br>
<input type="checkbox" name="Fahrzeuge_ohne_Preis" id="Fahrzeuge_ohne_Preis" value="Fahrzeuge_ohne_Preis" checked />
<label for="Fahrzeuge_ohne_Preis">Fahrzeuge_ohne_Preis</label><br>
<input type="checkbox" name="Fahrzeuge_mit_Fehlern" id="Fahrzeuge_mit_Fehlern" value="Fahrzeuge_mit_Fehlern" checked />
<label for="Fahrzeuge_mit_Fehlern">Fahrzeuge_mit_Fehlern</label><br>
<input type="checkbox" name="Herausforderungen" id="Herausforderungen" value="Herausforderungen" checked />
<label for="Herausforderungen">Herausforderungen</label><br><br>
</td>
</tr>
</table>
$html .= '</td>
</tr>
</table>
'.CreateButton($page['button']).'
</div>
</td>
</tr>
</table>';
$return = array(
'status' => 1,
'html' => $html
);
echo json_encode($return);
die();
}
PHP代碼:
if($param['aktion'] == 'get-widget-vehicle')
{
$page['register-fahrzeuge'] = array(
1 => array( 'FAHRZEUGE','aktiv',$page['script'],''),
0 => array( 'EDIT-FAHRZEUGE','enabled',$page['script'],'',''),
);
/*when empty default config...
$query= "SELECT dashboard_widget.configuration FROM dashboard_widget WHERE Id =1";
*/
$query ="SELECT dashboard_widget_users.configuration
FROM dashboard_widget_users
INNER JOIN yw_user ON dashboard_widget_users.dsnr_yw_user = yw_user.intern
INNER JOIN dashboard_widget ON dashboard_widget_users.dsnr_dashboard_widget = dashboard_widget.id
WHERE dashboard_widget_users.dsnr_yw_user=".$user_id." AND dashboard_widget.id=1 ";
$result = mysql_query($query, $myConnection);
$html = '<table width="538" cellspacing="0" cellpadding="0" border="0" >
<tr>
<td>
<div>'.CreateRegister($page['register-fahrzeuge']).'</div>
'.CreateMessage().'
<div class="cont-liste-verlauf register">';
if($row = mysql_fetch_assoc($result))
{
$empty_config=$row['configuration'];
if(empty($empty_config )) {
$sql="SELECT dashboard_widget.configuration FROM dashboard_widget WHERE Id =1";
$sql_result = mysql_query($sql, $myConnection);
$results = mysql_fetch_assoc($sql_result);
$config= unserialize($results['configuration']);
}
else{
$config= unserialize($row['configuration']);
}
foreach($config as $val)
{
if($val == 'Anzahl_Fahrzeuge_ohne_Bilder')
{
$sql='SELECT count( * ) as bilder FROM autodo.amo_bilder_live l LEFT JOIN autodo.afzdaten a ON l.dsnr_afzdaten = a.dsnr WHERE l.dsnr_afzdaten IS NULL';
$sql_result=mysql_query($sql);
$results=mysql_fetch_assoc($sql_result);
$configVehicleWidget[$val]['count'] = $results['bilder'];
}
else if($val == 'Fahrzeuge_ohne_Preis')
{
$sql='SELECT count(*) as Preis FROM autodo.afzdaten WHERE Preis IS NULL';
$sql_result=mysql_query($sql);
$results=mysql_fetch_assoc($sql_result);
$configVehicleWidget[$val]['count'] = $results['Preis'];
}
else if($val == 'Fahrzeuge_mit_Fehlern')
{
$sql='SELECT count(*) as fehler FROM autodo.afzdaten WHERE fehler IS NULL';
$sql_result=mysql_query($sql);
$results=mysql_fetch_assoc($sql_result);
$configVehicleWidget[$val]['count'] = $results['fehler'];
}
else if($val == 'Herausforderungen')
{
$sql='SELECT count(*) as herausforderung FROM autodo.afzdaten WHERE herausforderung IS NULL';
$sql_result=mysql_query($sql);
$results=mysql_fetch_assoc($sql_result);
$configVehicleWidget[$val]['count'] = $results['herausforderung'];
}
if($configVehicleWidget[$val]['count'] > 0)
{
$html .= '<a href="'.$configVehicleWidget[$val]['link'].'" style="color:red;">'.'<image src="'.$configVehicleWidget[$val]['image'].'" width="30" height="25" align="middle">.'.$configVehicleWidget[$val]['count'].' '.$configVehicleWidget[$val]['linkName'].'<br>'.'<br>'.'</a>';
}
else
{
$html .='<span style="color:green;">'.'<image src="'.$configVehicleWidget[$val]['image'].'" width="30" height="22" align="middle">.'.$configVehicleWidget[$val]['textAllOK'].'<br>'.'<br>'.'</span>';
}
}
}
$html .= '
</div>
</td>
</tr>
</table>';
$return = array(
'status' => 1,
'html' => $html
);
echo json_encode($return);
die();
}
你想改變這個
<input type="checkbox" name="Fahrzeuge_mit_Fehlern" id="Fahrzeuge_mit_Fehlern" value="Fahrzeuge_mit_Fehlern" checked />
像這樣,不確定將它們從數據庫中取出時復選框的值是什么樣的
<input type="checkbox" name="Fahrzeuge_mit_Fehlern" id="Fahrzeuge_mit_Fehlern" value="Fahrzeuge_mit_Fehlern" <?php echo (isset($config['Fahrzeuge_mit_Fehlern'])) ? 'checked="true"' : ''; ?> />
基本上告訴它您的復選框是否被選中,否則應用被選中的屬性,否則,我想現在總是選中它們。
當然,在創建html輸出之前,您將需要提取數據庫內容。
如果要選中頁面加載時的所有復選框,則可以在$(document).ready()document.getElementById(“ myCheck”)。checked = true;中使用javascript。
如果您的復選框已選中,則需要輸出“ checked”,如果未選中,則不需要輸出。
已經從數據庫中檢索到“已檢查”值(在這種情況下,無需使用會話)。
這是一種實現方法:
<?php
$is_checked = true;
if ($is_checked)
{
// checked
?>
<input type="checkbox" name="a" checked />
<?php
}
else
{
// not checked
?>
<input type="checkbox" name="a" />
<?php
}
?>
這是執行相同操作的更緊湊的方法:
<?php
$is_checked = true;
// this will output either "checked" or nothing ""
echo '<input type="checkbox" name="a" ' . ($is_checked ? 'checked' : '') . ' />';
?>
編輯:這是一個如何從數據庫檢索$ is_checked值的示例。
使用以下SQL創建一個測試表並用示例數據填充它:
CREATE TABLE test
(
`user_id` int(11),
`checkbox_name` varchar(256),
`is_checked` int(11)
);
INSERT INTO test (`user_id`, `checkbox_name`, `is_checked`)
VALUES
('1', 'a', '0'),
('1', 'b', '1'),
('1', 'c', '0'),
('2', 'a', '0'),
('2', 'b', '1'),
('2', 'c', '1')
;
使用PHP檢索數據:
<?php
function is_cb_checked ($user_id, $checkbox_name)
{
$q = mysql_query ('select * from test where user_id = ' . (int)$user_id . " and checkbox_name = '" . mysql_real_escape_string ($checkbox_name) . "'" );
$row = mysql_fetch_assoc ($q);
$is_checked = ($row['is_checked'] > 0 ? true : false);
return $is_checked;
}
$user_id = 2;
$a_is_checked = is_cb_checked ($user_id, 'a');
$b_is_checked = is_cb_checked ($user_id, 'b');
$c_is_checked = is_cb_checked ($user_id, 'c');
echo 'a = <input type="checkbox" name="a" ' . ($a_is_checked ? 'checked' : '') . ' /><br/>';
echo 'b = <input type="checkbox" name="b" ' . ($b_is_checked ? 'checked' : '') . ' /><br/>';
echo 'c = <input type="checkbox" name="c" ' . ($c_is_checked ? 'checked' : '') . ' /><br/>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.