ThinkPHP 中 form 表单用 get 提交会直接跳到首页,这个需要在哪里进行啥设置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP 中 form 表单用 get 提交会直接跳到首页,这个需要在哪里进行啥设置?相关的知识,希望对你有一定的参考价值。

我也遇到这个问题了,刚解决,你用的是TP3.2吧,访问参数类似?s=/xxx/xxx这样吗?那是因为你的s参数被表单get提交参数覆盖了,所以没有控制器和方法就默认访问首页去了。解决的话就把s参数放在表单的隐藏域就可以了。 参考技术A 你的表单action是否有误?

默认是提交到index控制器index方法,所以会回到首页。追问

action 应该是没有错的,POST 可以提交过去,只有GET 提交不过去,直接跳到首页

追答

你得把代码贴出来。

追问

就是一个简单的form,我还重新写了一个控制器,只继承Think\Controller 其他就只写一个form,他还是只有post 可以提交过去而 get就跳到首页,应该是Thinkphp中的哪个设置问题,后来我下载了下新的ThinkPHP,再测试就没有问题,post、get 都可以提交过去,而不会跳到其他页。

参考技术B 我也遇到这个问题了..或者说是bug吧 ..method为get.无论我action设置成什么...就是跳首页.. 参考技术C url!!!追问

哥哥,别这么简单啊,我是一点都不知道这个问题该怎么解决啊。。

追答

你用get方式提交,肯定有action啊,action就是你要跳转的路径目标

追问

但是post 提交的话就可以,我现在是想把这个表单中的值放到URL后面,可以再写一个方法将这个参数获取到直接放到URL中再做一个header , 但是会多走一步,我就想问问有没有直接设置TP中的东西可以改掉的。

追答

可以啊,写一个方法。

追问

我现在是写了一个方法,然后header 我现在是想了解一下ThinkPHP 是否有这个设置,在哪里设置这个?

追答

这个我就不听清楚了兄弟,抱歉

html中post必须要用form表单,而get就可以不用form表单就可以提交了吗?

当然不是的,post可以使用表单提交数据也可以使用ajax提交数据,get方法也是一样的,只不过get方法是通过url传值,可以在url后面直接加参数实现get方法提交数据的。

工具原料:编辑器、浏览器

1、get或者post都是可以通过form表单提交数据的,代码如下

<form action="form_action.asp" method="get">
  <p>First name: <input type="text" name="fname" /></p>
  <p>Last name: <input type="text" name="lname" /></p>
  <input type="submit" value="Submit" />
</form>

以上的method属性就是可以填写get或者post方法

2、get或者post也都是可以通过ajax提交的,代码如下:

$.ajax(
type:"get",
url:"",
async:true
);

ajax中的type可以自定义get或者post方法进行传值。

参考技术A

当然不是,post可以使用表单提交数据,也可以使用Ajax提交数据,get方法是一样的,只是get方法是通过URL值传递的,可以直接在URL后添加参数来获取提交数据的方法。

    超文本标记语言(HTML)的结构包括 “头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的 具体内容。

    超级文本标记语言是 标准通用标记语言下的一个应用,也是一种规范,一种准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉 浏览器如何显示其中的内容。

    主要特点如下:

    1、简易性:超级文本标记语言 版本升级采用 超集方式,从而更加灵活方便。

    2、可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加 标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。

    3、平台无关性:虽然 个人计算机大行其道,但使用 MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是 万维网( WWW)盛行的另一个原因。

    4、通用性:另外, HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。

参考技术B 可以的
form的提交方式分为post和get,这两者的区别总结如下:

Post:把数据通过表单提交过去,action中如果带有参数也能在处理页面通过request.get取得action后的参数值,通过request.form取得表单中的值

Get:把表单中的数据放到浏览器链接中一并传递过去,如果之前在action中已经加有参数,则参数被替换为表单中的数据,原参数清除.
参考技术C 传统意义上讲:是的
但由于ajax和jquery的出现,post和get都可以不一定要写form了
用jquery的$.get(),$.post() 就可以本回答被提问者和网友采纳
参考技术D html里边,get获取的值可以放到 url地址后边的参数

以上是关于ThinkPHP 中 form 表单用 get 提交会直接跳到首页,这个需要在哪里进行啥设置?的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp3.2.3 怎么上传form表单

thinkphp分页+条件查询

Django-1

thinkphp表单提交问题

thinkphp表单提交问题

表单提交后用history.back()的问题(本人用thinkPHP)