Php 复选框赢得';t从HTML表单更新
这里是我在HTML表单上的编辑脚本(我的编辑文件):Php 复选框赢得';t从HTML表单更新,php,codeigniter,Php,Codeigniter,这里是我在HTML表单上的编辑脚本(我的编辑文件): 首先,你必须修改你的代码如下 <form action="url-to-update-method" method="post"> //this hidden field is to send 0 if the checkbox is unchecked as //php post variable will not have checkbox value <input type="hidden" na
首先,你必须修改你的代码如下
<form action="url-to-update-method" method="post">
//this hidden field is to send 0 if the checkbox is unchecked as
//php post variable will not have checkbox value
<input type="hidden" name="toolbox" value="0"/>
//This checkbox is the one which is visible on the HTML page to check
<input type="checkbox" name="toolbox" value="1"
<?php if($value['toolbox'] == "1"){ echo "checked='checked'"; } ?> />
</form>
//如果复选框未选中,则此隐藏字段将发送0
//php post变量将没有复选框值
//此复选框在HTML页面上可见,可以进行检查
您有两个名为toolbox
的输入。我很确定type=“text”
的input
s没有未选中的属性。为什么不使用一个
?谢谢@kerbholz first我使用了一个复选框表单,但是我不知道第一个值是否是数据库中工具箱值的零“0”,我想编辑数据或将其更改为“checked”。值必须是一个“1”。如果我只使用一个输入表单,我的模型总是捕获“0”值。这是让我困惑的部分,如果数据库中的第一个值是“1”,那么我是在“取消勾选”它工作时编辑数据的,当我编辑表单中的数据时,该值被更改为“0”,但不是从“0”值更改为“1”。据我所知,如果不勾选复选框,该值将不会被发布。因此,您正在控制器中获取它。你能说清楚一点,告诉我你想完成什么吗?@beingprabhu当我选择“工具箱”选项时,我勾选了复选框,然后它会在数据库中添加值“1”。当我想要编辑数据时,表单显示“工具箱”已被选中。然后我将其取消勾选,它工作了,数据库中的值被编辑为“0”。但是,如果在添加数据页面中没有选中或勾选“工具箱”复选框,则复选框将被取消勾选,因此我不想通过勾选“工具箱”复选框进行编辑,但值没有更改,值仍然为“0”,它应该在数据库中更改为“1”。以下是简单的方法:1。我的输入页面:工具箱[]橱柜[]表[]
2。我选择了:Toolbox[]Cupboard[V]Table[V]
3。我进入编辑页面并更改选项:Toolbox[V]Cupboard[]Table[V]
4。橱柜工作了,它在数据库中被更改为“0”值,但在工具箱中没有,它仍然是“0”值,应该更改为“1”,因为我选择了它。你知道为什么要使用
?来获取值“1”。为此,为什么需要隐藏字段?您可以直接将其设置为复选框,就像我在回答中所做的那样。将“0”设置为隐藏字段,这是在复选框未选中的情况下所必需的。我感觉设置复选框值的表单是“编辑表单”。在插入表单中,将复选框值硬编码为“1”。这肯定行。是的,你的答案正确,但如果我将复选框从“0”值编辑为“1”,则它不起作用。您的答案在我的详细信息页面中非常有效,但在我的编辑页面中却没有。编辑页面显示或从数据库获取值value=“
它可以是“0”或“1”(1它将显示复选框被勾选,0它将显示未勾选)。问题是,当复选框被“勾选”并更改为“未勾选”时,它起作用,但如果复选框被“未勾选”则将其更改为“勾选”,值仍然是“0”。
public function update_data()
{
$role = $this->session->userdata('role_id');
$id = $this->input->post('id');
$toolbox = $this->input->post('toolbox');
$query = $this->m_urfave->update_data($id, $toolbox);
if ($query > 0) {
}
$this->session->set_flashdata('Msg', '<b><h3><font color="blue">Data updated</font)</h3></b>');
redirect('urfave');
}
function update_data($id, $toolbox)
{
$query=$this->db->query("update favorite_tbl SET toolbox='$toolbox' where id='$id'");
}
<form action="url-to-update-method" method="post">
//this hidden field is to send 0 if the checkbox is unchecked as
//php post variable will not have checkbox value
<input type="hidden" name="toolbox" value="0"/>
//This checkbox is the one which is visible on the HTML page to check
<input type="checkbox" name="toolbox" value="1"
<?php if($value['toolbox'] == "1"){ echo "checked='checked'"; } ?> />
</form>