2010-06-13 7 views
10

아약스 게시물을 사용 중이며 html 형식으로 데이터를 수신하고 있습니다. 데이터를 분할하고 페이지 전체에 데이터 조각을 배치해야합니다. 내 응답 데이터를 <p id='greeting'> Hello there and Welcome </p> <p id='something'>First timer visiting our site eh'</p>과 같이 만들었습니다. 좀 더 복잡하고 역동적이지만이 질문에 답을 얻는다면 알아낼 수 있습니다. 당신이 아이를 밤은 제대로 때문에 .find를 사용하지 못할 것처럼jQuery 아약스 응답 데이터 사용하기

success:function(data) { 
    data = $('<div/>').append(data); 
    $('#greeting',data).appendTo('#one') 
    $('#something',data).appendTo('#two') 
} 

하지만 당신은 빈 노드를 추가하는 경우 다음을 수행 할 수 있습니다 감사합니다

$.ajax({ 
      type:'POST', 
      url: 'confirm.php', 
      data: "really=yes&sure=yes", 
      success:function(data){ 
        //Need to split data here 
      } 
     }); 

답변

6

업데이트 : 그냥 아마 당신은이 작업을 수행해야 깨달았다. 다른 대안은 .filter

$.ajax({ 
      type:'POST', 
      url: 'confirm.php', 
      data: "really=yes&sure=yes", 
      success:function(data){ 
        $('#greeting',data).appendTo('#one') 
        $('#something',data).appendTo('#two') 
      } 
     }); 

당신은 data에서 추출하고 당신이 원하는 위치에 추가 할 수 있습니다 사용하는 것입니다. 대신 JSON을 반환하는 대신 HTML에서 html을 추출하는 대신 객체에서 html에 액세스하는 등의 작업을 수행 할 수도 있습니다.

$(data.greeting).appendTo('#one') 
$(data.something).appendTo('#two') 

응답은 같을 것이다 :

({ 'greeting':'html', 'something' :'other html' }) 
+0

답장을 보내 주셔서 감사합니다. 그러나 어떤 이유로 든 id를 통해 하나의 태그를 가져올 수 없습니다. 작동한다면 전체 문자열을 가져옵니다. – Theopile

+0

경고 (데이터) 경고는 무엇입니까? –

+0

JSON 솔루션에 대해 자세히 설명해 주시겠습니까? – Theopile

-2

(당신이 JSON 편안 경우 MEDER의 응답이 작동하지만 정규 표현식은 아마 좀 더 쉽게하고이를 위해 단지뿐만 아니라 작동합니다 .)

정규식을 사용하여 응답 텍스트를 분할해야 할 수 있습니다. 예를 들어, 응답 텍스트 인 경우 :

<p id='greeting'> Hello there and Welcome </p> 
<p id='something'>First timer visiting our site eh'</p> 

그런 다음 당신은 다음과 같은 몇 가지 자바 스크립트를 사용할 수 있습니다

var greeting = response_text.match(/<p id='greeting'>.*</p>/); 
var something = response_text.match(/<p id='something'>.*</p>); 

(이 사이트는 정규 표현식에 대한 학습에 좋은 곳입니다 : http://gskinner.com/RegExr/)

+1

1. 내 대답은 JSON과 관련이 없으며 JSON은 대안 2입니다. html을 구문 분석하기 위해 정규 표현식을 사용하지 않아야합니다. jQuery는 내부적으로 수행해야하는 DOM 메소드를 파싱하고 잡아 냄. –

+2

정규 표현식과 HTML에 대한 코딩 호러의 작업을 살펴보십시오. http://www.codinghorror.com /blog/2009/11/parsing-html-the-cthulhu-way.html 정규식과 html은 잘못된 생각이지만 항상 그런 것은 아닙니다. 예를 들어 사용자가 로그인 한 후 몇 군데에 환영 메시지를 삽입하는 경우 (예 : "환영, Theopile"), 정규식의 몇 줄이 그렇게 큰 범죄가 아닌 것처럼 보입니다. OP에 - 예를 들어있는 것보다 훨씬 복잡한 것이 있거나 AJAX 응답의 일부가 사용자에 의해 결정된 경우 Meder가 완전합니다. – Computerish

+0

또한 Meder의 솔루션에 어떤 이유로 코멘트를 추가 할 수 없지만 PHP를 사용하는 경우이 사이트는 JSON을 사용하는 좋은 예입니다. http://www.extjs.com/learn/Tutorial : Creating_JSON_Data_in_PHP – Computerish

0

왜 대답을 함께 confirm.php 안에 | 문자로 묶지 마십시오. 문자열이 변수 데이터로 반환되면 datas = data.split("|")으로 나눠서로 개별 답변에 액세스 할 수 있습니다., 등