comment faire un confirm() sur un lien href ? - HTML/CSS - Programmation
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>
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?
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).
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
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 :
|
il faut faire une concaténation sinon il ne sais pas que id est une variable
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.
Marsh Posté le 12-08-2002 à 22:45:24
merci ratibus, c'est donc + q'il faut utiliser en JS
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)
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 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) |
justement qi l'utilistaion se répète il vaut mieux utiliser une fonction générique non ?
Marsh Posté le 13-08-2002 à 08:36:54
mouais ..
en théorie je dirais oui, mais en pratique je trouve que c`est plus joli comme ca , 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 (je sais c con mais bon maintenant je sais que je peux le faire sans defirnir de fonction )
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?