Codeigniter在控制器中获取form_open值

时间:2016-04-15 08:15:56

标签: codeigniter codeigniter-3

我有一个很小的CI形式,如下:

<div class="box_txt">
<?php $attributes = array('clock_id' => $clock['id']); ?> 
<?php echo form_open('clock/start', $attributes) ?>
      <input type="submit" value="Start" />
      </form>
 </div>

它会产生一个以下开放的起源:

<form action="../clock/start" clock_id="123" method="post" accept-charset="utf-8">

我真的需要知道在控制器的功能中捕获clock_id的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

不应将clock_id作为表单属性,而应考虑使用隐藏的输入标记:

<input type='hidden' name='clock_id' value='<?php echo $clock["id"]; ?>'/>

然后您可以使用$this->input->post('clock_id')

处理它

否则,如果您真的想坚持使用代码,可以使用jquery获取属性并发送ajax请求:

var clock_id = $('form').attr('clock_id');

$('form').submit(function(e){
    e.preventDefault();
    var url = $(this).attr('action');
    var type = $(this).attr('method');
    var data = $(this).serialize() + '&clock_id=' + clock_id
    $.ajax({
        url: url,
        type: type,
        data: data,
        success:function(response){ /* handle response */}
    });
});

答案 1 :(得分:1)

表单标记上的clock_id值不会与表单提交一起发送,因为它不是表单元素。相反,您应该执行以下操作以使用隐藏字段:

echo form_hidden('clock_id', $clock['id']);

这将在您的表单中创建一个隐藏字段,名称为&#39; clock_id&#39;和值,在这种情况下,&#39; 123&#39;

答案 2 :(得分:1)

如果您需要控制器中的clock_id,请尝试此代码。

<div class="box_txt">

    <?php echo form_open('clock/start') ?>
         <input type="hidden" name="clock_id" value="123" />
         <input type="submit" value="Start" />
     <?php echo form_close() ?>

     </div>

控制器:

function start()
{
    $clock_id = $this->input->post('clock_id');
}