Codeigniter 在控制器中获取 form_open 值
Codeigniter get form_open value in controller
我有一个很小的 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
的正确方法是什么?
表单标签上的 clock_id
值不会随表单提交一起发送,因为它不是表单元素。相反,您应该执行以下操作来使用隐藏字段:
echo form_hidden('clock_id', $clock['id']);
这将在您的表单中创建一个隐藏字段,名称为 'clock_id',值在本例中为“123”
如果您需要 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');
}
与其将 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 */}
});
});
我有一个很小的 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
的正确方法是什么?
表单标签上的 clock_id
值不会随表单提交一起发送,因为它不是表单元素。相反,您应该执行以下操作来使用隐藏字段:
echo form_hidden('clock_id', $clock['id']);
这将在您的表单中创建一个隐藏字段,名称为 'clock_id',值在本例中为“123”
如果您需要 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');
}
与其将 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 */}
});
});