Jestem nowicjuszem w tym temacie. Mam div z niektórymi widżetami dojo wewnątrz. Używam ajax do przeładowania tego div, ale po tym moje widgety dojo się nie wyświetlają. Jak mogę sprawić, by moja przeglądarka ponownie ładowała widżety po zapytaniu ajaxowym. Nie chcę ponownie ładować całej strony.Załaduj ponownie widgety dojo po prośbie ajaxowej
Moje ajax część widok:
<div dojoType="dijit.layout.BorderContainer" gutters="true" id="borderContainerTwo">
<?php foreach($wynik as $row): ?>
<div dojoType="dijit.layout.ContentPane" region="center" splitter="false">
<p id="category"><img src="/photo/category/<?php echo $row->idPropozycji;?>.jpg" width="100" height="130" style="float: left;"></p>
<?php echo $row->opis; ?>
</div>
<div dojoType="dijit.layout.AccordionContainer" id="leftAccordion" region="leading" splitter="true">
<div dojoType="dijit.layout.AccordionPane" title="Title">
<h3><?php echo $row->nazwa2; ?></h3>
</div>
<div dojoType="dijit.layout.AccordionPane" title="Place">
<?php echo $row->place;?>
</div>
</div>
<?php endforeach;?>
</div>
Odśwież JQuery skryptu:
// Functon to Show out Busy Div
function showBusy(){
$('#ajax-content').block({
message: '<h1>Wczytuje dane</h1>',
css: {border:'3px solid #FFF'}
});
}
function updatePage(html){
window.setTimeout(function(){
$('#ajax-content').html(html);
}, 2000)
}
$(document).ready(function() {
// $.AJAX Example Request
$('.ajax-pag > li a').live('click', function(eve){
eve.preventDefault();
var link = $(this).attr('href');
console.log(link);
$.ajax({
url: link,
type: "GET",
dataType: "html",
beforeSend: function(){
showBusy();
},
success: function(html) {
updatePage(html);
}
});
});
});
Polecam używać tylko jednej struktury na raz. Rozważ użycie xhrGet i xhrPost dla żądań Ajax. Czy używasz Firebug do debugowania? Gorąco polecam go użyć. – perissf