我有一个很小的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
的正确方法是什么?
答案 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');
}