比如我现在的url地址是
index.php?r=site/index
能不能在form的get提交时,get参数能自动附加在site/index&…后面
现在的一提交,会直接跑到index.php?..了,没有route。
如果把route当做表彰隐藏域再提交,则route里的’/'会被转义掉
比如我现在的url地址是
index.php?r=site/index
能不能在form的get提交时,get参数能自动附加在site/index&…后面
现在的一提交,会直接跑到index.php?..了,没有route。
如果把route当做表彰隐藏域再提交,则route里的’/'会被转义掉
定义一个 hidden,赋值为动作名称,比如你的执行动作是 actionABC,则这个 hidden 的值就是 ABC
能否更详细点,您指的是
<input name="r" value="site/index" type="hidden" />
这样吗??
如果是这样的话,提交后,site/index里的’/'符号会被转义掉了,虽然那样的url地址,可以正常显示,但总感觉怪怪的
是的。“/”转义掉了?这个倒没有留意。
你的问题根源还是在于没有使用UrlManager中的urlformat=>‘path’
如果设定了path format并且隐藏了index.php,那么你的链接看起来应该是这样:
http://host/site/index?get_param=xxx
这时应该在form中设定action的地址为site/index,而不是用隐藏域来实现提交给哪个action这种操作
具体path format和隐藏index.php:
-========
linux环境:nginx+php-fpm:
http://www.humandong.cn/post/2
window环境:XAMPP
我做了一个比较完整的测试~
首先,补充个html的基础知识~
1、form 使用 get模式的话,actioin中, "?" 问号及以后的字符串会被去掉
因为问题1,所以导致你的form问题提交至正确的route~~
2、通过form提交表单,enctype有两种编码方式,默认是 application/x-www-form-urlencoded, 还有 multipart/form-data, 后面这种模式,相信大家都见过,就是在表单需要上传文件时,所使用的。(后面的编码模式,必须搭配type=post来使用)
因为问题2,所以 "/" 会被转为 "%2F"
但不会影响使用~~