用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5625|回复: 3
收起左侧

form的action问题,url被追加了(已解决)

[复制链接]
发表于 2013-4-5 21:13:32 | 显示全部楼层 |阅读模式
本帖最后由 chinesebear 于 2013-4-6 09:31 编辑

教程里的例子
http://localhost/ci/index.php/news/create
给数据库添加一条记录,点击确定之后,url为:http://localhost/ci/index.php/news/ci/index.php/news/create
然后是404错误提示。
我很纳闷应该不会有错啊。
代码全是用户手册里的。大侠指点一下!

解决:问题在于form_open("news/create"),函数会自动补全url,这样导致在原来的url(http://localhost/ci/index.php/news/ )后又加上了“ci/index.php/news/create ”。这样导致找不到网页的404错误。
将form_open("news/create") 替换成<form action="create" method="post" name="create">,就可以了。添加记录成功,yeah!
后来看了stblog的原代码发现它并没有用form_open()函数,而是直接写表单"<form action="" method="post" name="write_post">"。所以,form_open()应该是不太好用吧。
发表于 2013-4-6 00:28:28 | 显示全部楼层
form_open的第一个参数不要再调site_url了,form_open自己会调用site_url的
 楼主| 发表于 2013-4-6 09:20:55 | 显示全部楼层
问题已经解决,并不是ci的方面的原因。
<h2>Create a news item</h2>

<?php echo validation_errors(); ?>

<?php //echo form_open('news/create') ?>//form_open会自动补全url,再加上原来页面的url就很长了
<form action="create" method="post" name="create">//修改后的action
  <label for="title">Title</label>
  <input type="input" name="title" /><br />

  <label for="text">Text</label>
  <textarea name="text"></textarea><br />
  
  <input type="submit" name="submit" value="Create news item" />

</form>
 楼主| 发表于 2013-4-6 09:21:44 | 显示全部楼层
dickfu 发表于 2013-4-6 00:28
form_open的第一个参数不要再调site_url了,form_open自己会调用site_url的

谢谢你的解答。

本版积分规则