2015-01-05 3 views
0

아약스 응답에서 div의 콘텐츠를 가져 오려고하지만 해당 div가 아닌 다른 div와 동일한 콘텐츠가 반환됩니다.아약스 데이터 필터링이 작동하지 않습니다.

$.ajax({ 
url:'test', 
type:'POST', 
data:{id:id}, 
cache:false, 
success: function(data){ 
    $('#resp_top').html(data).find('#top');// this one works 
    $('#resp_bot').html(data).find('#bottom');// this returns the same content as the above 
    //$('#resp_bot').html($(data).filter('#bottom')); I have also tried this but doesn't work 
} 
}) 

PHP는 당신이 단지에 모든 데이터 마사지 또는 필터링을 수행하지 않고있는 div에 대한 데이터의 내용을 할당하는 것처럼 보이는

... 
echo "<div id='top'>".$top_content."</div>"; 
echo "<div id='bottom'>".$bottom_content."</div>"; 
+0

대신 JSON의 HTML을 반환하는 어떤 이유가 있습니까? 데이터를 사용할 수 있고'test'의 dom 구조체가 필요 없으면 json을 반환하는 것이 좋습니다. 이런 식으로 할 방법이 없다 ... 단지 json이이 문제에 더 적합 할 것 같습니다. – smerny

+1

AJAX 게시물의 수익을 제공 할 수 있습니까? –

답변

1

.

$('#resp_top').html(data).find('#top') 

resp_top ID의 HTML에 데이터 개체를 추가합니다.

$('#resp_bot').html(data).find('#bottom'); 

resp_bot ID의 HTML에 SAME 데이터 개체를 추가합니다.

find는 DOM 조작을 수행하지 않고 그냥 요소를 찾고 아무것도 수행하지 않습니다.

당신은 더 나은 다음을 할당, 데이터를 먼저 마사지가 제공 될 것입니다 :

$('#resp_top').html($(data).find('#top')); 
$('#resp_bot').html($(data).find('#bottom')); 

이것은 위/아래는 ID와 같은 데이터 객체에 있다고 가정합니다.

+0

오류 : 구문 오류, 인식 할 수없는 표현 –

0

두 반환 값과 JSON 배열을 반환 사용해보십시오 :

자바 스크립트 :

$.ajax({ 
url:'test', 
type:'POST', 
data:{id:id}, 
dataType:'json', 
cache:false, 
success: function(data){ 
    $('#resp_top').html(data[0]).find('#top'); 
    $('#resp_bot').html(data[1]).find('#bottom'); 
} 
}) 

PHP :

echo "<div id='top'>".$top_content."</div>"; 
echo "<div id='bottom'>".$bottom_content."</div>"; 
echo json_encode(array("<div id='top'>".$top_content."</div>", "<div id='bottom'>".$bottom_content."</div>")); 
+0

왜 처음에 dom을 만드시겠습니까? 보다 직관적 인'data.top'와'data.bottom'을 사용하여 접근 할 수 있도록'{ 'top': 'foo', 'bottom': 'bar'}'와 같은 것을 반환하지 마십시오. – smerny

+0

나는 이것을 시도했지만, 결과가 돌아 오지 않을 것입니다. console.log (데이터)에 아무것도 표시되지 않습니다. –

관련 문제