2010-10-01 24 views
44

के माध्यम से लोड मॉडल संवाद सामग्री को वर्तमान में मेरे मॉडल संवाद इसjQuery: अजाक्स

<html> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script> 
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/themes/humanity/jquery-ui.css" type="text/css" /> 
</head> 
<body> 
    <div id="dialog" title="Title Box"> 
    <p>Stuff here</p> 
    </div> 
    <script type="text/javascript"> 
    jQuery(
    function() { 
    jQuery("#dialog") 
     .dialog(
     { 
     bgiframe: true, 
     autoOpen: false, 
     height: 100, 
     modal: true 
     } 
    ); 
    jQuery('body') 
     .bind(
     'click', 
     function(e){ 
     if(
     jQuery('#dialog').dialog('isOpen') 
     && !jQuery(e.target).is('.ui-dialog, a') 
     && !jQuery(e.target).closest('.ui-dialog').length 
     ){ 
     jQuery('#dialog').dialog('close'); 
     } 
     } 
    ); 
    } 
    ); 
    </script> 
    <a href="#" onclick="jQuery('#dialog').dialog('open'); return false">Click to view</a> 
</body> 
</html> 

डिव कि भरी हुई है एक ही पृष्ठ में शामिल है की तरह है। संवाद को दिखाए जाने पर मैं उस div को दूसरे पृष्ठ पर कैसे ले जा सकता हूं और अजाक्स के माध्यम से सामग्री लोड कर सकता हूं? और क्या मैं आवश्यकता के अनुसार अलग-अलग सामग्री लोड करने के लिए स्क्रिप्ट का पुन: उपयोग कर सकता हूं?

उत्तर

71

निमिकोर से इस ब्लॉग पोस्ट को देखें, जो आप चाहते हैं जो करना चाहिए।

http://blog.nemikor.com/2009/04/18/loading-a-page-into-a-dialog/

मूल रूप से, 'खुला', तो आप 'लोड' पहली अन्य पृष्ठ से सामग्री कॉल करने से पहले।

jQuery('#dialog').load('path to my page').dialog('open'); 
+16

हालांकि यह काम करता है यह पूरा करने के लिए लोड के लिए इंतजार से तुरंत नहीं बल्कि संवाद खुल जाएगा। कॉलबैक फ़ंक्शन का उपयोग करना बेहतर होगा: '$ ('# dialog')। लोड ('पथ-से-मेरा-पृष्ठ', फ़ंक्शन() {$ ('# संवाद')। संवाद ('खुला'); }); ' – billynoah

14

इसका उपयोग करने का प्रयास करें।

$(document).ready(function(){ 
$.ajax({ 
    url: "yourPageWhereToLoadData.php", 
    success: function(data){ 
     $("#dialog").html(data); 
    } 
}); 

$("#dialog").dialog(
     { 
     bgiframe: true, 
     autoOpen: false, 
     height: 100, 
     modal: true 
     } 
); 
}); 
4
var dialogName = '#dialog_XYZ'; 
$.ajax({ 
     url: "/ajax_pages/my_page.ext", 
     data: {....}, 
     success: function(data) { 
      $(dialogName).remove(); 

      $('BODY').append(data); 

      $(dialogName) 
      .dialog(options.dialogOptions); 
     } 
}); 

अजाक्स अनुरोध संवाद लोड करते हैं, उन्हें वर्तमान पृष्ठ के शरीर के लिए जोड़ सकते हैं और संवाद को खोलने के।

आप केवल सामग्री लोड करने whant यदि आप कर सकते हैं:

var dialogName = '#dialog_XYZ'; 
$.ajax({ 
      url: "/ajax_pages/my_page.ext", 
      data: {....}, 
      success: function(data) { 
       $(dialogName).append(data); 

       $(dialogName) 
       .dialog(options.dialogOptions); 
      } 
}); 
0
<button class="btn" onClick="openDialog('New Type','Sample.html')">Middle</button> 

<script type="text/javascript"> 
    function openDialog(title,url) { 
     $('.opened-dialogs').dialog("close"); 

     $('<div class="opened-dialogs">').html('loading...').dialog({ 
      position: ['center',20], 
      open: function() { 
       $(this).load(url); 

      }, 
      close: function(event, ui) { 
        $(this).remove(); 
      }, 

      title: title, 
      minWidth: 600    
     }); 

     return false; 
    } 
</script> 
0

इस कोड को आप कुछ विचार दे सकता है हो सकता है।

http://blog.nemikor.com/2009/04/18/loading-a-page-into-a-dialog/

$(document).ready(function() { 
    $('#page-help').each(function() { 
     var $link = $(this); 
     var $dialog = $('<div></div>') 
      .load($link.attr('href')) 
      .dialog({ 
       autoOpen: false, 
       title: $link.attr('title'), 
       width: 500, 
       height: 300 
      }); 

     $link.click(function() { 
      $dialog.dialog('open'); 

      return false; 
     }); 
    }); 
}); 
संबंधित मुद्दे