【问题标题】:Cannot catch value from form_hidden on codeigniter?无法从 codeigniter 上的 form_hidden 中获取值?
【发布时间】:2014-04-14 04:54:31
【问题描述】:

我尝试使用表单助手 CI 创建更新表单。如果在 form_input 上一切正常。但是,当 form_hidden 上的 id 时,它返回 NULL。这是脚本 正在查看

$hidden = array('name'=>'id_hidden','value'=>$datacompany[0]->id);
echo form_hidden($hidden); //I have edited

在控制器上

function edit_company()
{
    if(isset($_POST['EDIT']))
    {
        print_r($_POST);//return All value

        $isi = array(
                 'id'   =>$this->input->post('id_hidden'),//return null
                 'nip'  =>$this->input->post('nip'),//return value
                 'nama' =>$this->input->post('nama'), //return value
             'golongan' =>$this->input->post('golongan') //return value

                );

            echo $isi['id']; //the result id is null
    }//end if
}//end Function

我需要在模型上使用的那个 ID。我该如何解决? 如何从 form_hidden 中获取 ID?

非常感谢您的回答

谢谢

【问题讨论】:

  • 它真的打印在 html 上吗?你看到一个结构良好的隐藏输入字段吗?

标签: php forms codeigniter post


【解决方案1】:

虽然使用我的第一条评论可以让您在 3 秒内完成调试,但答案是 :)

您以错误的方式使用 form_hidden。

form_hidden 中的一个数组会变成这个(来自文档)

$data = array(
          'name'  => 'John Doe',
          'email' => 'john@example.com',
          'url'   => 'http://example.com'
        );

echo form_hidden($data);

// 会产生:

<input type="hidden" name="name" value="John Doe" />
<input type="hidden" name="email" value="john@example.com" />
<input type="hidden" name="url" value="http://example.com" />

如您所见,数组的“键”变成了字段的名称。 该值是数组的“值”。因此,在您的示例中,您正在制作 两个 隐藏字段。

 <input type="hidden" name="name" value="id_hidden">
<input type="hidden" name="value" value="$datacompany[0]->id">

【讨论】:

  • 嗨@Patrick 我已经编辑了我的问题。在我的视图文件中,脚本是 $hidden = array('name'=>'id_hidden','value'=>$datacompany[0]->id); echo form_hidden($hidden);并且值不能传递给文件控制器。
  • 我在这个答案的正文中回答了你的问题,数组的格式错误,它创建了两个具有两个名称的输入字段,一个用于数组中的每个“键”。
  • 嘿,它工作。多谢。我不知道隐藏的表单与表单输入不同。
【解决方案2】:

您需要像这样在 CI 中定义一个隐藏字段:

$hidden = array('id_hidden',$datacompany[0]->id); // a name and value pair for a single instance.
echo form_hidden($hidden);

【讨论】:

    【解决方案3】:
    $hidden = array('id_hidden' =>  $datacompany[0]->id);
    echo form_hidden($hidden);
    

    我认为这将满足您的需求。 或者如果你想要其他属性...试试这个..

    $data = array(
                  'name'        => 'username',
                  'id'          => 'username',
                  'value'       => 'johndoe',
                  'maxlength'   => '100',
                  'type'        => 'hidden',
                  'size'        => '50',
                  'style'       => 'width:50%',
                );
    
    echo form_input($data);
    

    取决于你的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      相关资源
      最近更新 更多