![](/img/trans.png)
[英]On insertion of checkbox data in codeigniter it insert 'on' in the database value
[英]how to insert checkbox data into database codeigniter framework
我只想問一下,如果它們具有相同的名稱,我如何只保存1個復選框。
例如,我有此復選框,只有其中一個需要保存在我的桌子上
<input type="checkbox" name="loan" value="First Loan Application"> First Loan Application
<input type="checkbox" name="loan" value="Renewal"> Renewal
在我的桌子上,我有一個稱為loan
的字段
我可以在我的controller
上這樣做嗎
function insert_data(){
$data = array(
'loan' => $this->input->post('loan'),
....
);
}
在我看來,我有這個
<form id="myForm" method="post" action="<?php echo base_url(); ?>main/insert_data">
<input type="checkbox" name="loan" value="First Loan Application"> First Loan Application
<input type="checkbox" name="loan" value="Renewal"> Renewal
</form>
如果我做的正確或缺少某些東西,有人可以幫助我。
正如M.Hemant所說,應該使用單選按鈕,以便用戶只能選擇其中之一。
此外,您應該為該列設計具有tinyint
類型的數據庫。 例如,將0
存儲為“ First Loan Application
,將1
為“ Renewal
。 這樣,數據庫將比varchar類型使用更少的空間,並且索引更容易。
<input type="radio" name="loan" value="0"> First Loan Application
<input type="radio" name="loan" value="1"> Renewal
如果希望用戶僅選擇一個選項,則很容易使用單選按鈕,但是如果要提供復選框以進行多個選擇,這是一種簡單的方法。 在輸入類型的html復選框中,將name屬性更改為這樣的數組。
<form method='post'>
<input type='checkbox' name='test[]' value='1'/>1
<input type='checkbox' name='test[]' value='2'/>2
<input type='checkbox' name='test[]' value='3'/>3
<button type='submit' name='sub'>sub</button>
</form>
現在在文件的php部分中,使用isset函數檢查此測試數組
if(isset($_REQUEST['sub'])){
print_r($_REQUEST['test']);
}
在這里執行print_r語句后,您可以在復選框中看到選中的值。現在,您可以使用implode函數將數組轉換為可以存儲在數據庫中的字符串的單列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.