사용자가 페이지 영역의 별도 탭에 표시된 일련의 비디오를 업로드 할 수있는 사용자 인터페이스를 작성하고 있습니다. 새 비디오가 업로드되거나 기존 비디오가 삭제되면 (AJAX를 통해), 그에 따라 탭을 업데이트하려고합니다. 탭을 업데이트 한 후 다시 그리는 데 문제가 있으며 행운이 없습니다. 여기에 내가 뭘 내용은 다음과 같습니다Ajax 응답을 사용하여 jquery 탭을 재생성하는 방법
이자바 스크립트과 같이 서버에 요청을 보냅니다 :
function deleteVideo(id){
$.post("video.php?action=deletevideo",
{'id' : id},
function(response){
$('#videoTabs').html(response);
$('#videoTabs').tabs();
}
);
}
그리고 PHP 측에서 요청은 다음과 같이 처리됩니다
switch($_GET['action']) {
case 'deletevideo':
try{
$video = new videoClass($_POST['id']);
$video->delete();
draw_video_tabs();
}catch(Exception $e){
echo $e->getMessage();
}
break;
I PHP 스크립트에 의해 다시 보내지는 코드가 정확히 내가 기대하는 것, 그리고 "draw_video_tabs"함수가 내가 아약스를 사용하지 않고 페이지를 그릴 때 사용하는 것과 동일한 것을 볼 수 있습니다. 그것이 내게주는 HTML이 정확히 있어야합니다.
그러나 답장을 보내면 "#videoTabs"div에 탭이 표시되지 않습니다. 나는 대신 직선 HTML (총알 목록과 일치하는 div 집합)을 봅니다.
또한 응답을 JSON 인코딩 된 객체로 보내고 그 결과를 본문에 삽입하려고했습니다. 그것도 나에게 올바른 코드를 제공하지만, 탭이 없습니다.
그래서 내가 무엇을 놓치고 있습니까? 콘텐츠가 AJAX 요청에서로드 될 때 탭을 만드는 비교적 쉬운 방법이 있다고 가정합니다. 하나의 탭이 아니라 전체 탭 세트를로드한다는 점에 유의하십시오. 그것은 페이지로드시 이미 생성 된 동일한 div에로드됩니다.
이 일을 파괴, 감사 만 추가 및 제거 할 경우,이 문서를 봐! 나는 아직도 전화가 끊기지 않고 왜 작동하지 않는지 이해하지 못합니다. 나는 wrapping div의 전체 내용을 제거하고 대체하고 그것을 tabify하려고 시도했다. 그것은 작동하지 않았고 아무런 오류도 던지지 않았습니다. –