Podpinam się pod ten temat bo mój problem jest podobny, a jednak nieco inny.
Zrobione mam tak: pierwsze wywołanie jest następujące :
Kod
function product_gallery (id) {
advAJAX.get
({
url : "system/ajax.php",
parameters : { "ajax_product_gallery" : id },
onSuccess : function(obj) { document.getElementById("product_gallery").innerHTML = obj.responseText; }
});
}
Zwraca ona galerię produktu o określonym id. Wszystko działa poprawnie. W ajax.php wykorzystuje XTemplate (http://www.phpxtemplate.org) a zawartość samego template obecnie jest następująca:
Kod
<!-- BEGIN: product_gallery -->
<h3>Galeria produktu</h3>
<!-- BEGIN: images -->
<div class="margin-top-15">
<img src="{OBRAZEK}" width="150" /> {ID}.{ROZSZERZ} | {DODANO} | {OPIS} | {WEJSC} test
</div>
<!-- END: images -->
<!-- BEGIN: noimages -->
Dla tego produktu, nie dodano jeszcze fotografii.
<!-- END: noimages -->
<div class="margin-top-15"></div>
<h3>Dodaj obrazek</h3>
<div id="wynik">
<form id="add_photo" enctype="multipart/form-data" action="dupa.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
<input type="file" name="obrazek" />
<input type="submit" value="dodaj" />
</form>
<script type="text/javascript" language="javascript">
function add_photo()
{
advAJAX.assign
( document.getElementById("add_photo"),
{
onLoading : function(obj){
document.getElementById("wynik").innerHTML = '<div class=center><b>Ładowanie danych...</b><br/><img src="skins/{PHP.skin}/img/icons/ajax-loader.gif"></div>';
},
onSuccess : function(obj) {
document.getElementById("wynik").innerHTML = obj.responseText;
},
onError: function(obj) {
document.getElementById("wynik").innerHTML = 'Error';
}
}
);
}
add_photo();
</script>
</div>
<!-- END: product_gallery -->
Niestety formularz leci normalnie do action, pomijany jest ajax. Jeżeli natomiast adv.assing dam w poprzednim XTemplate w pliku w którym wywoływana jest metoda advAjax.get, działa poprawnie, ale rozwiązanie mnie nie satysfakcjonuje, chce aby kod odpowiedzialny za dodawanie był w dobrym miejscu, a nie w innym tpl'u, w którym jest zbędny ( ale dziala jeśli w adv.get() onSucc dodam add_photo(); ). Pomyślałem, że może to zadziała, gdy po załadowaniu zainicjowanej metody, którą dam w funkcję wywołam tą funkcję, ale też nic to nie dało.
Może ktoś ma jakiś pomysł ? Pozdrawiam i z góry dziękuję za każdą pomoc.