comment faire un confirm() sur un lien href ?

comment faire un confirm() sur un lien href ? - HTML/CSS - Programmation

Marsh Posté le 12-08-2002 à 17:57:13    

je voudrais pouvoir faire une confirmation apres la click du lien:
<A href="proddel.php" onClick="confirm(' Are you sure to delete the product ? ';)">Delete</A>
 
selement tel quel, meme si on click sur anuller il charges tout dememe la page  :(  
 
je suis obligé de passer par une fonction que je définit au préalable dans un script ou il y a un moyen plus simple?

Reply

Marsh Posté le 12-08-2002 à 17:57:13   

Reply

Marsh Posté le 12-08-2002 à 18:27:49    

L'astuce consiste à ne rien mettre dans le href et faire un window.location.href = "proddel.php" dans une fonction JavaScript.
 
Modulo le debug, ca donne qqch comme ca :
 
function confirmation() {
 if (confirm("etes-vous sur ?" )) {
  window.location.href = "proddel.php"
 }
}
 
...
 
<A href="#" onclick="confirmation();">Delete</A>

Reply

Marsh Posté le 12-08-2002 à 18:48:38    

hum ok,
sinon si je veux passer une variable dans l`autre page:
 
function confirmation(id) {  
if (confirm("etes-vous sur ?" )) {  
 window.location.href = "proddel.php?code=id"  
}  
}  
...  
<A href="#" onclick="confirmation(7);">Delete</A>
 
la page seras bien proddel.php?code=7 ?
 
 
 
 
<A href="javascript:confirmation()">Delete</A> ca marche?  :hello:

Reply

Marsh Posté le 12-08-2002 à 18:54:47    

Affirmartif pour les 2 : le passage d'argument, c'est tout a fait ca, et le javascript:... doit marcher aussi, mais c'est peut-etre moins sur avec les "vieux" navigateurs (je ne pense pas que I.E. 4 aime).

Reply

Marsh Posté le 12-08-2002 à 19:15:11    

bon je viens de tester, alors:
avec href="#" il ne fait rien que l`on click sur ok ou annuler
 
avec href="javascript:confirmation(7)">
 
par contre la page finale est proddel.php?code=id et non proddel.php?code=7,
doit y avoir un pb la:
window.location.href = "proddel.php?code=id"
car comme id est une variable, il doit certainement pas falloir la marquer comme juste du text, en php j`aurais mis $id mais en JS je connais pas grand chose  :(  

Reply

Marsh Posté le 12-08-2002 à 19:43:50    

cybercouf a écrit a écrit :

bon je viens de tester, alors:
avec href="#" il ne fait rien que l`on click sur ok ou annuler
 
avec href="javascript:confirmation(7)">
 
par contre la page finale est proddel.php?code=id et non proddel.php?code=7,
doit y avoir un pb la:
window.location.href = "proddel.php?code=id"
car comme id est une variable, il doit certainement pas falloir la marquer comme juste du text, en php j`aurais mis $id mais en JS je connais pas grand chose  :(  




 
 

Code :
  1. function confirmation(id)
  2. if (confirm("etes-vous sur ?" )) window.location.href = "proddel.php?code="+id;
  3. }


 
il faut faire une concaténation sinon il ne sais pas que id est une variable

Reply

Marsh Posté le 12-08-2002 à 21:04:17    

plus simple : si tu retournes false dans un événement de balise, l'événement ne sera pas passé au navigateur.  
 
donc :
 
<A href="proddel.php" onClick="return confirm(' Are you sure to delete the product ? ';)">Delete</A>
 
si la confirmation est ok, -> envoyer l'événement au navigateur, qui va voir qu'on a cliqué sur un lien, et va ouvrir le lien.
si la confirmation n'est pas ok -> rien ne se passe.

Reply

Marsh Posté le 12-08-2002 à 22:45:24    

merci ratibus, c'est donc + q'il faut utiliser en JS :jap:
 
merci youdontcare, c'est exactement ce que je voulais faire ! c.a.d sans apel a une fct, car ce lien peut se reperter plus d 100 fois sur la page (il est pour chaque item d'une liste générée en php) :jap:

Reply

Marsh Posté le 12-08-2002 à 23:12:46    

cybercouf a écrit a écrit :

merci ratibus, c'est donc + q'il faut utiliser en JS :jap:
 
merci youdontcare, c'est exactement ce que je voulais faire ! c.a.d sans apel a une fct, car ce lien peut se reperter plus d 100 fois sur la page (il est pour chaque item d'une liste générée en php) :jap:




 
justement qi l'utilistaion se répète il vaut mieux utiliser une fonction générique non ?  :??:

Reply

Marsh Posté le 13-08-2002 à 08:36:54    

mouais .. :heink:  
en théorie je dirais oui, mais en pratique je trouve que c`est plus joli comme ca  :D , en fait c`est de la pure fénéantise, car tel quel je n`ai besoin de tapper que le lien, apre c php qui le repeteras, et donc g pas besoin de tapper en plus la fonctinon  :D (je sais c con mais bon maintenant je sais que je peux le faire sans defirnir de fonction ;) )

Reply

Marsh Posté le 13-08-2002 à 08:36:54   

Reply

Marsh Posté le 13-08-2002 à 08:55:52    

ok  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed