Передача данных через ajax в диалог Jquery - PullRequest
0 голосов
/ 05 июня 2010

Я пытаюсь опубликовать данные из моей формы в диалоге 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;
});

Что я делаю не так, правильно ли я поступаю ???

Ответы [ 3 ]

4 голосов
/ 05 июня 2010

Я думаю вот что вы ищете:

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

Вы уже получаете содержимое HTML обратно из POST (или, по крайней мере, я думаю, что это так), поэтому просто поместите этот ответ в #recordingdialog, используя .html(), а затем сделать вызов диалога. Если вы ранее не создавали диалоговое окно с параметрами, тогда достаточно просто .dialog(), .dialog('open') предназначено для случаев, когда вы ранее создали диалоговое окно с различными параметрами и теперь хотите его открыть, например, так: :

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

Полный список этих опций вы можете найти здесь

0 голосов
/ 05 июня 2010

Хорошо, у меня это работает:

      $("#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;
});

Спасибо, Ник! Но есть одна проблема. Когда я закрываю диалог и нажимаю на кнопку, чтобы открыть его снова, ничего не происходит, почему бы и нет ???

0 голосов
/ 05 июня 2010

Возможно, лучше сначала отобразить диалоговое окно и загрузить содержимое.

$('#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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...