2013-03-02 27 views
0

我不熟悉jQuery和搜索给了我很多不同于我正在寻找的答案。jQuery,AJAX,PHP,并接收信息

我正在使用ajax从PHP脚本加载数据库中的数据。我想加载新数据并且不加载已经显示的旧数据。我想出了使用表格中最高索引值的想法,我从中抽取数据来做到这一点,很简单。在PHP中做这件事并不成问题,但要实现循环是困难的部分。

我的PHP脚本输出粘贴在接收页面上的HTML。我需要该页面从我的页面接收一个变量,因此在下一次请求时,它可以提交最高索引值以防止重复。现在问题出在哪里。

jQuery AJAX接收数据类型'HTML'。如何将HTML和HTML一起传递,以便更新脚本。

摘要的程序是如何工作的:

-Page.php sends an ajax(GET) request to script.php with a few variables 
-Script.php receives the request and processes the variables 
-Script.php finishes processing and outputs HTML 
-(I want script.php to send variables to page.php that can be identified separately from the HTML) 
-Page.php receives HTML and appends it 
-(I want those variables to be added to the Jquery variables so they can be sent on next request) 

现在怎么做,这是问题。我对jQuery不太熟悉,所以我不确定它是否可以正常完成。

+0

到目前为止你有什么代码?有什么问题?获取正确的数据,将其呈现给页面还是两者? – thescientist 2013-03-02 03:30:01

+0

现在我可以提交数据并从该Ajax请求接收数据,并且工作正常。我只是想弄清楚除了HTML数据之外,如何接收带有AJAX请求的变量。 AJAX(GET)请求的最终结果是格式正确的HTML。我需要一个随它一起发送的变量。这或我需要找出一个不同的方法来处理这个问题。 – Rujikin 2013-03-02 03:33:11

+0

@Rujikin ..请发表您的代码,并把多余的精力在你的问题..那你表明你想在这里解决问题的唯一途径,其他明智的你不会得到这么多的关注... – 2013-03-02 03:39:12

回答

1

如果项目的标记不复杂,我通常会将数据作为json获取,然后在js中创建标记。

例如可以说这是JSON数据,我们得到的:

{ 
    "offset": 0, 
    "limit": 5, 
    "results": [ 
     { "id": 1, "name": "something"}, 
     { "id": 2, "name": "something2"}, 
     { "id": 3, "name": "something3"}, 
     { "id": 4, "name": "something4"}, 
     { "id": 5, "name": "something5"} 
    ] 
} 

我们可以用offsetlimit为一到一个到该响应所对应的数据的SQL。这样就使得jQuery的是这样的:

function getResults(limit, offset) { 
    $.getJSON('getitems.php', {'limit': 5, 'offset': 0}, function(data){ 
     var tpl = '<div id="result-_ID_">_NAME_</div>', 
      html = ''; 
     if(data.results.length > 0) { 
     $.each(data.results, function(i, obj){ 
      html += tpl.replace('_ID_', obj.id).replace('_NAME_', obj.name); 
     }); 

     $(elementToAppendTo).append(html); 

     // there could be more left so lets do it again, with the offset incremented 
     // to get the next set ie. offset = 0+5 = 5 
     getResults(data.limit, data.offset+data.limit); 
     } 
    }); 
} 

当然,这个例子将仅仅指刚保持通话本身,我以为你想要一些用户动作determin时拨打电话为下一组项目,但是这shoudl说明总体思路。

+0

哼哼......我想知道你是否可以做这样的事情来替代。我可以做一个最大功能JSON阵列上,并获得最高的ID值,我可以特殊处理标签提交旧的信息,这解决了一些问题,我将不得不应对未来。谢谢!猜猜我将不得不学习更多关于Jquery和JSON数据的XD – Rujikin 2013-03-02 04:21:29

相关问题