2013-03-02 3 views
0

jQuery에 익숙하지 않고 검색을 통해 내가 찾던 답변과 많이 다른 답변을 얻었습니다.jQuery, AJAX, PHP 및 수신 정보

데이터베이스에서로드하는 PHP 스크립트에서 데이터를로드하는 데 아약스를 사용하고 있습니다. 새 데이터를로드하고 이미 표시된 이전 데이터를로드하지 않습니다. 나는 테이블에서 가장 높은 인덱스 값을 사용하여 데이터를 가져와이 아이디어를 내놓았다. PHP에서하는 것은 아무런 문제가되지 않지만 루프를 만드는 것은 어려운 부분입니다.

내 PHP 스크립트는 수신 페이지에 붙여 넣기되는 HTML을 출력합니다. 내 페이지에서 변수를 받으려면 해당 페이지가 필요하므로 다음 요청시 중복을 방지하기 위해 가장 높은 인덱스 값을 제출할 수 있습니다. 이제 그것이 문제가되는 곳입니다.

jQuery AJAX는 '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

+0

지금 당장 데이터를 제출하고 그 Ajax 요청으로부터 데이터를받을 수 있습니다. HTML 데이터를 제외하고, AJAX 요청으로 변수를받는 방법을 알아 내려고 노력하고 있습니다. AJAX (GET) 요청의 최종 결과는 올바른 형식의 HTML입니다. 나는 그와 함께 보낸 변수가 필요하다. 이 문제를 해결하기 위해서는 다른 방법을 찾아야합니다. – Rujikin

+0

@Rujikin .. 코드를 게시하고 질문에 여분의 노력을 기울이십시오. 여기에 문제를 해결하고 싶다는 것을 보여줄 수있는 유일한 방법이 있습니다. 다른 현명한 관심을 갖지는 않을 것입니다. –

답변

1

항목에 대한 마크 업이 복잡하지 않으면 일반적으로 데이터를 json으로 가져온 다음 js에 마크 업을 만듭니다.

{ 
    "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에 대한 예를 들면 다음과 같습니다

는 우리가 얻을이 JSON 데이터라고 할 수 있습니다. 그래서 이런 JQuery와 일하게이 예 자체를 계속 전화 jsut 것입니다 물론

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 배열에서 max 함수를 수행하고 가장 높은 ID 값을 얻을 수 있고 특수 처리 태그가 포함 된 이전 정보를 제출할 수 있습니다. 그러면 앞으로 해결해야 할 몇 가지 문제가 해결됩니다. 감사! Jquery 및 JSON 데이터 XD에 대해 더 많이 배워야 할 것 같네요. – Rujikin