代码点火器按钮重定向


Codeigniter button redirect

我只想问一下,因为我正在开发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,以便忽略按钮单击的默认事件。