本人做了一个页面,用的smarty模板。数据都在index.php中读出来了,然后显示在index.tpl文件中。但是tpl文件有个按钮,是要把数据按规定排序的。例如,我默认的是index.php中从数据库中读出来顺序是1,2,3,4。那么tpl文件中有个按钮,点击之后页面显示的就是4,3,2,1。目前就是想知道,怎么把那个点击事件传送到index.php,然后index.php按规定读出数据之后,再显示到tpl文件中。
我在tpl文件中写了一个点击事件,想用ajax传递,抓包显示的,index.php也读出了数据,但是当前tpl文件显示的还是之前的。$("#sortbypop").click(function(){
var url = document.URL;
$.get(url,{action:"get",sort:"popsort"},function(data,textStatus){
});
});
这是那段ajax代码。请问要该怎么做?

解决方案 »

  1.   

    你的回调函数 function(data,textStatus){} 函数体是空的,当然就什么也不会做了
    具体要做些什么事情,要取决于你设计的场景
      

  2.   

    原来是徐前辈!找到高手了。
    是这样,因为我不需要执行什么,我想做的就是在index.tpl中提交一个参数,让后台php程序获取之后重新读取下数据库数据,然后再显示出来。流程相当于 tpl-->提交参数--->php获取重新读数据--->tpl中更新显示 就是这个功能。关键是我的数据是在index.php中读出来的,然后display(index.tpl)了。现在想做的就是,tpl往回传参数,php重新读,再重新传数据给tpl。我已经被绕晕了。
      

  3.   

    在 function(data,textStatus){} 中
    data 显然是返回的数据,怎么展示这个数据,与你的设计有关。别人如何知道?
      

  4.   

    这个回调函数可以不用,我是用来测试的。我是说我那个思路要该怎么实现,其实就是一个很简单的问题,我估计绕进去了。说白点就是
    php 读出了一行数据,然后显示到了模板中。现在模板有个按钮功能,要求php重新把数据排序,然后再显示到模板。具体流程就是前端页面 tpl-->php-->tpl这样。现在我做的测试。alert了下回调函数里的data,显示的是新数据html完整代码。就是说,回调函数返回的数据中,连php文件中的 display(tpl)文件也返回了。所以返回的是一整个html代码。但是当前的tpl页面没有变化。我想做的功能就是,点击下,然后中间显示的图片顺序变化了。不点击,就是默认的顺序。
      

  5.   

    那个回调函数是非用不可的,并且那个 data 只应该是需要变化的那个区域的内容
    于是你用 data 替换掉目标区域的内容不就完事了?
      

  6.   

    那就是js操作了,用data 替换掉下面的内容就可以啦。
      

  7.   

    现在主要是data请求的是index.php。所以返回了index.php中所有数据,包括display(tpl)。现在data里数据是一整个html页面内容了。里面数据不好拿出来。想看看有没有更方便的办法
      

  8.   

    如果要用 ajax 来做局部刷新,那么你就得将模板拆开。即不同的需求用不同的模板
    如果你要整体刷新,就不要用 ajax
      

  9.   

    原来只是分开就可以了。我一直在追求整体刷新使用ajax,走错方向了,太偏执了我。多谢徐老师!