Codeigniter按钮重定向

时间:2013-12-14 09:25:04

标签: php codeigniter web

我只是想问,因为我正在使用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>

当我尝试点击按钮时,没有任何问题。

3 个答案:

答案 0 :(得分:5)

CodeIgniter的redirect()函数意味着发出HTTP 302响应,该响应仅在输出内容之前有效。它专为控制器设计,不应出现在您的视图中。

浏览器端的导航可以通过Javascript实现:

<button onclick="location.href='<?php echo base_url();?>register/index'">Register</button>

答案 1 :(得分:1)

如果您想使用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');

答案 2 :(得分:0)

如果需要,您可以为项目编写一个通用的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>

OR 你可以简单地做以下

<button onClick="window.location.href = '<?php echo base_url();?>register/index';return false;">Register</button>

请记住返回false,以便忽略按钮点击的默认事件。