[Ajax] modifier un lien image

WRInaute passionné
Bonjour à tous les pros de l'ajax et autres,

Lorsque je clique sur un lien (soit annuler soit ajouter), celui-ci lance un script php (par de l'ajax) et me retourne un message de confirmation que j'affiche dans un div.

jusque là tout est ok. mon problème est que mes liens ajouter/annuler sont des icones (+ et -), et donc j'aimerais bien :
1- une fois que je clique sur l'icone + (ajouter), que cet icone se transforme en - (annuler)
2- que le lien associer change

voici mes liens:
Code:
<?php echo $res['nom_zone']; if($association == 1) { ?><a href="#" onClick="zoneActe('annuler', <?php echo $id_asso; ?>, 'toto')"><img src="annuler.gif"></a><?php } else { ?>
<a href="#" onClick="zoneActe('ajouter', <?php echo $res['id']; // id zone ?>, <?php echo $id_acte; //id acte ?>)"><img src="ajouter.gif"></a><?php } ?>

ce qui m'affiche :
* item 1 - Annuler
* Item 2 - Ajouter


Merci de votre aide
 
WRInaute impliqué
Salut,

Essaie en ajoutant dans les images :

Code:
<img src="ajouter.gif" onCLick="this.src='annuler.gif" />
<img src="annuler.gif" onCLick="this.src='ajouter.gif" />
 
WRInaute occasionnel
Quel frameworks Ajax utilises tu?
Sinon, rien de bien compliqué :

dans ta page :

Code:
<span id='monimage'><a href="#" onClick="zoneActe('annuler', <?php echo $id_asso; ?>, 'toto')"><img src="annuler.gif"></a></span>

dans ton script php Ajax :
Code:
$result="<a href='#' onClick='zoneActe(\'annuler\', ".$id_asso.", \'toto\')'><img src='annuler.gif'></a>";
$objResponse->assign("monimage", "innerHTML","");
 
WRInaute passionné
psykoko a dit:
Quel frameworks Ajax utilises tu?
Sinon, rien de bien compliqué :

dans ta page :

Code:
<span id='monimage'><a href="#" onClick="zoneActe('annuler', <?php echo $id_asso; ?>, 'toto')"><img src="annuler.gif"></a></span>

dans ton script php Ajax :
Code:
$result="<a href='#' onClick='zoneActe(\'annuler\', ".$id_asso.", \'toto\')'><img src='annuler.gif'></a>";
$objResponse->assign("monimage", "innerHTML","");

je n'utilise pas de framework. voici mon code :

Code:
function zoneActe(action, id1, id2){
	if(texte = file('includes/ajax_zoneacte.php?action='+action+'&id1='+id1+'&id2='+id2)){
		document.getElementById('confZone').innerHTML = texte;
		document.getElementById('confZone').className = 'confirmation';
		
	}
}

function file(fichier){
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
 
WRInaute occasionnel
Hum...
Dans ton head
Code:
function plus(a){
if (a==0)
      document.getElementById("monimage").innerHTML = "<img src='ajouter.gif' onCLick='plus(1);'></a>";
if(a==1)
      document.getElementById("monimage").innerHTML = "<img src='annuler.gif' onCLick='plus(0);'></a>";
}

et dans ton corps:
Code:
<img src="ajouter.gif" onCLick="plus(1);" />
 
WRInaute passionné
je viens de l'installer mais j'ai pas trop compris où je pouvais suivre le débugguage

console ? script ?

merci
 
WRInaute passionné
Code:
Réponse
Date	Thu, 27 Nov 2008 14:20:44 GMT
Server	Apache/2.2.X (OVH)
X-Powered-By	PHP/4.4.9
Expires	Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control	no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma	no-cache
Vary	Accept-Encoding
Content-Encoding	gzip
Content-Length	44
Keep-Alive	timeout=5, max=100
Connection	Keep-Alive
Content-Type	text/html
Requête
Host	www.domaine.fr
User-Agent	Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.18) Gecko/20081029 Firefox/2.0.0.18
Accept	text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language	fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding	gzip,deflate
Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive	300
Connection	keep-alive
Referer	http://www.domaine.fr/admin/fiche_acte.php?id=1
Cookie	PHPSESSID=9b35e70561a673d1387ec861e42d1422; webfxtab_tab-pane-1=1

Code:
Firebug needs to POST to the server to get this information for url:
http://www.domaine.fr/admin/includes/ajax_zoneacte.php?action=ajouter&id1=1&id2=1

This second POST can interfere with some sites. If you want to send the POST again, open a new tab in Firefox, use URL 'about:config', set boolean value 'extensions.firebug.allowDoublePost' to true
This value is reset every time you restart Firefox This problem will disappear when https://bugzilla.mozilla.org/show_bug.cgi?id=430155 is shipped.
 
Discussions similaires
Haut