我只想问一下,因为我正在开发Codeigniter,我在主页上有一个按钮,如果点击,它将页面重定向到注册页面。
<input type='button' onClick='<?php redirect(base_url() . 'register/index'); ?>' />
我还尝试了表单助手。
<body>
<?php
$data = array('register' => array('name' => 'register',
'id' => 'register',
'value' => 'TRUE',
'type' => 'button',
'content' => 'Register',
'onClick' => redirect(base_url() . 'register/index')
);
?>
<table border="1">
<tr>
<td><?php echo form_button(element('register', $data, )); ?></td>
<td></td>
</tr>
</table>
</body>
问题是当我试着点击按钮时什么也没发生。
CodeIgniter的重定向()函数意味着生成HTTP 302响应,该响应仅在输出内容之前有效。它是为控制器设计的,永远不应该出现在您的视图中。
浏览器端的导航可以通过Javascript实现:
<button onclick="location.href='<?php echo base_url();?>register/index'">Register</button>
如果你想使用CI表单助手,你可以这样使用:
echo form_button('name','content');
// Would produce
// <button name="name" type="button">Content</button>
或者,您可以传递一个包含您希望表单包含的任何数据的关联数组:
$data = array(
'name' => 'button',
'id' => 'button',
'value' => 'true',
'type' => 'reset',
'content' => 'Reset'
);
echo form_button($data);
// Would produce:
// <button name="button" id="button" value="true" type="reset">Reset</button>
如果您希望表单包含一些额外的数据,如JavaScript,您可以将其作为第三个参数中的字符串传递:
$js = 'onClick="some_function()"';
echo form_button('mybutton', 'Click Me', $js);
并确保助手已加载:
$this->load->helper('form');
如果需要,您可以为您的项目编写一个通用的javascript函数,并可以像下面这样调用它:
<button onClick="return redirect('<?php echo base_url();?>register/index');">Register</button>
javascript函数如下:
<script>
function redirect(url){
window.location.href = url;
return false;
}
</script>
或你可以简单地做以下
<button onClick="window.location.href = '<?php echo base_url();?>register/index';return false;">Register</button>
请记住返回false,以便忽略按钮单击的默认事件。