2010-06-05 4 views
0

외부 양식을로드하는 jquery 대화 상자에 양식의 데이터를 게시하려고합니다.ajax를 통해 데이터를 대화 상자에 전달 Jquery

나는 (URL에 표시) 작동 양식 데이터를 직렬화하고 있지만 대화 상자가 열리지 않습니다 : 내가 잘못 뭐하는 거지

 $("#wavajax button").click(function() { 
    $.post({url: 'player/index.php', data: $("#wavajax").serialize(), 
     success: function (data) { 

        $("#recordingdialog").load("player/index.php", [], function(){ 
       $("#recordingdialog").dialog("open"); 

       } 
    }); 
    return false; 
}); 

, 나는 그것에 대해 올바른 길을 갈거야 ???

+0

이전에 대화 상자를 만드시겠습니까? 왜 POST를하고 나서 동일한 URL을 얻었는지 확실하지 않은가요? –

+0

나는 player/index.php에 데이터를 게시하고 게시 된 데이터가있는 대화 상자에서 해당 페이지를 열어 보려고합니다. – user342391

+0

'# recordingdialog '가 마크 업에 포함 된 div인지 여부에 관계없이 ui 대화 상자가 종류를 열어야합니다 그리고 모든 대화 상자 종속성을 포함합니다. – jAndy

답변

4

나는이 필요하시면 생각 : 그래서 그냥 (또는 적어도 나는이 경우 생각)

$("#wavajax button").click(function() { 
    $.post('player/index.php', $("#wavajax").serialize(), function (data) { 
     $("#recordingdialog").html(data).dialog("open"); 
    }); 
    return false; 
}); 

당신은 이미 POST에서 다시 HTML 콘텐츠를 받고있어 해당 응답을 #recordingdialog에 넣고 .html()을 사용하고 대화를 호출하십시오. 이전 옵션 대화 상자를 작성하지 않는 경우, 그럼 그냥 .dialog()는 다양한 옵션과 함께 이전 대화 상자를 만들 때를위한 것입니다, .dialog('open')을 충분이처럼, 지금 열려 :

$("#recordingdialog").dialog({ 
    //other options, width, height, etc... 
    autoOpen: false 
}); 

You can find a full list of these options here

+0

이것은 잘 작동합니다. 하지만 대화 상자를 닫고 다시 클릭하면 아무 일도 일어나지 않습니다. 어떤 아이디어가 발생합니까? 대단한 닉 – user342391

+0

@user이 경우가 아니어야합니다. 그 '# recordingdialog' 요소가 무엇입니까? –

+0

네, player/index.php 파일의 상단에 헤더가 포함되어 있습니다. 그것을 제거하고 모든 것이 좋습니다. 너는 남자 !! – user342391

0

먼저 대화 상자를 표시하고 콘텐츠를로드하는 것이 더 좋은 방법 일 수 있습니다.

$('#recordingdialog').dialog('destroy'); // just in case 
$('#recordingdialog').dialog({ 
    position: 'center', 
    // some more options 
    open: function(e, ui){ 
     $.post('player/index.php', data: $("#wavajax").serialize(),function (data){ 
       $("#recordingdialog").html(data); 
     }); 
    } 
}); 

클릭 처리기 내에 있습니다.

UI Dialog Doc

+0

이 접근 방식은 내용이로드되기를 기다리는 빈 대화 상자를 남기고, 그렇게 할 때 깜박이며, 나는 이것이 사용되어야 할 접근법이라고 생각지 않는다. ... 또한'$ .post()'호출을 점검하고, 그것은 유효하지 않다 :) –

+0

나는이 접근법이 단지 버튼을 누른 후에 아무 일도 일어나지 않게하는 것보다 낫다고 생각한다. 여는 중 대화 상자에 '로딩'gif를 삽입하는 것이 좋습니다. – jAndy

+0

현재 답변으로 인해 자바 스크립트 구문 오류가 발생하므로 아직 좋지 않습니다. –

0

좋아 나는이 작업이 :

 $("#recordingdialog").dialog({ 
    //other options, width, height, etc... 
    modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 550, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Play Recording",}); 


$("#wavajax button").click(function() { 
    $.post('player/index.php', $("#wavajax").serialize(), function (data) { 
     $("#recordingdialog").html(data).dialog("open"); 
    }); 
    return false; 
}); 

감사 닉! 하지만 한 가지 문제가 있습니다. 대화 상자를 닫고 버튼을 클릭하여 다시 열면 아무 일도 일어나지 않습니다. ???

관련 문제