Salut,
Am o galerie de poze si fiecare poza are un buton de tip submit care la apasare (onclick) apeleaza o functie din javascript, functie care ar trebui sa stearga respectiva poza.
Faza e ca nu sterge niciodata prima poza, de fapt nu face prima actiune de sterge, abia a doua oara sterge. Indiferent cate poze sunt in galerie, 10 sau doar 1, sau indiferent pe a cata poza dau sa o stearga nu functioneaza pentru prima apasare a butonului.
Form-ul este asa:
Cod HTML:
<form action="ajaxstergepoza.php" method="post" name="unobtrusive" id="unobtrusive">
<td id="stergepoza_area1" valign="bottom"><a href="uploads/4/case-la-cheie_1297943075.jpg">
<img src="uploads/4/case-la-cheie_1297943075.jpg" width="140" /></a><br />
<input type="submit" value="sterge" onclick="ajaxStergePoza(this.form,'ajaxstergepoza.php?iduser=4&idpoza=16','stergepoza_area1','Deleting File Please Wait...',' Error in Delete'); return false;" />
</td>
<td id="stergepoza_area2" valign="bottom"><a href="uploads/4/case_1297943075.jpg">
<img src="uploads/4/case_1297943075.jpg" width="140" /></a><br />
<input type="submit" value="sterge" onclick="ajaxStergePoza(this.form,'ajaxstergepoza.php?iduser=4&idpoza=17','stergepoza_area2','Deleting File Please Wait...',' Error in Delete'); return false;" />
</td>
</form>
Iata mai jos si continutul fisierului .js
Cod:
function $m(theVar){
return document.getElementById(theVar)
}
function remove(theVar){
var theParent = theVar.parentNode;
theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
if(obj.addEventListener)
obj.addEventListener(evType, fn, true)
if(obj.attachEvent)
obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
if(obj.detachEvent){
obj.detachEvent('on'+type, fn);
}else{
obj.removeEventListener(type, fn, false);
}
}
function isWebKit(){
return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxStergePoza(form,url_action,id_element,html_show_loading,html_error_http){
var detectWebKit = isWebKit();
form = typeof(form)=="string"?$m(form):form;
var erro="";
if(form==null || typeof(form)=="undefined"){
erro += "The form of 1st parameter does not exists.\n";
}else if(form.nodeName.toLowerCase()!="form"){
erro += "The form of 1st parameter its not a form.\n";
}
if($m(id_element)==null){
erro += "The element of 3rd parameter does not exists.\n";
}
if(erro.length>0){
alert("Error in call ajaxUpload:\n" + erro);
return;
}
var iframe = document.createElement("iframe");
iframe.setAttribute("id","ajax-temp");
iframe.setAttribute("name","ajax-temp");
iframe.setAttribute("width","0");
iframe.setAttribute("height","0");
iframe.setAttribute("border","0");
iframe.setAttribute("style","width: 0; height: 0; border: none;");
form.parentNode.appendChild(iframe);
window.frames['ajax-temp'].name="ajax-temp";
var doUpload = function(){
removeEvent($m('ajax-temp'),"load", doUpload);
var cross = "javascript: ";
cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
$m(id_element).innerHTML = html_error_http;
$m('ajax-temp').src = cross;
if(detectWebKit){
remove($m('ajax-temp'));
}else{
setTimeout(function(){ remove($m('ajax-temp'))}, 250);
}
}
addEvent($m('ajax-temp'),"load", doUpload);
form.setAttribute("target","ajax-temp");
form.setAttribute("action",url_action);
form.setAttribute("method","post");
if(html_show_loading.length > 0){
$m(id_element).innerHTML = html_show_loading;
}
form.submit();
}