Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 复选框赢得';t从HTML表单更新_Php_Codeigniter - Fatal编程技术网

Php 复选框赢得';t从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

这里是我在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" 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>