发出代码点火器的url方案

时间:2013-03-26 06:24:49

标签: codeigniter

我有一个像

这样的表格
<form action="abc/1" method="post">

</form>

我希望每次提交此表单时,我的网址都会保持相同,就像假设我当前的网址

一样
http://localhost/abc/1 after form submit it should be again 
http://localhost/abc/1

but instead this it become
http://localhost/abc/1
http://localhost/abc/abc/1
http://localhost/abc/abc/abc/1 each time I press submit button in form.

它与代码点火器中的mvc的URL方案相关的东西

3 个答案:

答案 0 :(得分:1)

表单的操作与您当前的位置有关。

如果您在http://example.com/contact并且表单的操作设置为contact/send,则表单会发送到http://example.com/contact/contact/send现在,通过删除contact/可以轻松解决此问题。 part形成action属性或在action属性的开头添加/,因此路径是绝对的 - /contact/send

在CodeIgniter中执行此操作应该相对简单,因为您可以使用URL Helper指向应用程序中的正确URL。

<form action="<?php echo site_url('abc/1'); ?>" method="post">

</form>

此示例将始终指向相对于application/config/config.php中base_url和index_page设置的页面。

在你的案例中,在评论中提到,与<?php echo site_url('home/authenticateUser/' . $user_id); ?>一起的内容可能就是答案。

答案 1 :(得分:0)

尝试

<form action="/abc/1" method="post">

</form>

或者您最好使用site_url

<form action="<?php echo site_url('abc/1');?>" method="post">

</form>

答案 2 :(得分:0)

将操作从“abc / 1”更改为“/ abc / 1”将起作用,但如果您在子目录中构建应用程序(通常是本地主机开发环境中的情况),则会恢复为您的htdocs文件夹,而不是您所需的文件夹。

我建议使用以下两个选项之一:

  1. <form action="<?php echo base_url(abc/1); ?" method="post">
  2. <?php form_open('abc/1')' ?>
  3. 数字2是更好的,因为它与CodeIgniter的CSRF功能一起使用,并自动添加base_url()。

    希望这有帮助。