我正在尝试使用javascript提交带有链接(代替表单按钮)的html表单。 这是我的代码。
<?php
echo form_open('controller/method', 'id=formid', 'name=formname');
echo form_hidden('uniqval', 'somevalue'); //here some value is the actual string that
//needs to be passed to the controller's function
?>
<a href="link/controller/method" onclick="handler();">Submit</a>
<?php echo form_close(); ?>
使用Javascript:
<script>
function handler(){
//document.formname.uniqval.value = 'somevalue'; //not sure if this is required
document.formname.submit();
}
</script>
我的问题如何将隐藏的表单数据传递给php codeigniter中的控制器。 我试图通过常规的帖子方法来阅读它,
使用$ this-&gt; input-&gt; post('uniqval');
当我给出href的实际url路径时,它调用了funcion,但是没有传递该值。
提前感谢任何想法或例子。
答案 0 :(得分:0)
你应该form_close()是一回事;然后将“控制器/方法”改为实际控制器&amp;方法名称
因为您的锚标记实际上不是锚,href =“#”
答案 1 :(得分:0)
您的代码存在一些问题(在php,html和JS中)。
PHP:
您必须使用 form_close()
关闭表单。
form_close()
接受属性作为数组格式,这就是表单名称丢失且javascript无法找到要提交的表单的原因。
<?php
echo form_open('controller/method', array('id'=>'formid', 'name'=>'formname'));
echo form_hidden('hidden', 'somevalue');
echo form_close();
?>
仅供参考:form_hidden()
不接受参数中的属性。这与此无关。
<强> HTML:强>
您必须使 <a>
无法点击。
<a href="javascript:void(0)" onclick="handler();">Submit</a>
<强> Javascript:
强>
无需通过javascript传递隐藏值。所以,我删除了那一行。
<script type="text/javascript">
function handler()
{
document.formname.submit();
}
</script>
现在表单提交将起作用,您可以使用 $this->input->post("somevalue")
来捕获值。
希望这会有所帮助:)