教程进行到第四已然显得有些罗嗦了,本篇主要是本人记录自己遇到的一些细节问题和网上的各种pjax代码版本,权当补充篇来看吧。

搜索ajax表单序列化

最近想把主题换成经典的twentytwelve,也试着把它pjax化,其中遇到一个搜索ajax的问题,按理说其他主题能实现,没问题,这个也应该可以,但我把代码搬上去之后,发现搜索ajax返回没有返回正确的页面,这里首先要说的就是WordPress正常情况下的搜索请求链接应该是这样的http://127.0.0.1/?=xxx,xxx表示你搜索的关键字,而由于有后端的处理(也就是教程[一]中的“剪裁”),发送给ajax的请求链接一般是类似?ajx=container这样的后缀(其他版本有可能是这样?action=pjax),那么搜索ajax的请求链接能不能这样http://127.0.0.1/?=xxx?ajx=container?答案是不能。只能把?号换成&号,变成这样http://127.0.0.1/?=xxx&ajx=container,所以在搜索ajax的请求链接上要加一些判断,如果是搜索,那么得改一改链接附加的参数形式。


以上只是一个细节,我在修改twentytwelve时没有返回应有的页面,把搜索链接http://127.0.0.1/?=xxx&ajx=container直接输入到浏览器打开,发现也不是搜索结果页面,找了半天才发现是form表单序列化的问题,$.ajax()方法有几个参数,其中我们要把序列化的表单信息放入到ajax方法的data参数内。赋值 data = $('#searchform').serialize(); 。其中#searchform是form表单的id
2015-06-07_pjax1
以上只是一个例子,条件判断可以按自己的思路来做改变。如此一来,搜索ajax就没有问题了。

待续。。。