[Résolu]Problème JS - replace

DIEZ

WRInaute impliqué
Voilà, dans mon code j'utilise une fonction JS faite maison

Code:
<script language="javascript">
	function deco(){
		if (confirm("Désirez vous quitter l'interface d'administration ?")){
			location.replace("le site visé") ;
		}
		else{
			refresh(777) ;
		}
	}
</script>

Et je l'intègre de cette manière

Code:
<form name="form1" action="" method="post" target="" onSubmit="javascript:deco()">
		<input name="rech" type="hidden" value="">
		<table align="center">
			<tr align="center"><td><strong><?php echo $titre_deconnexion ; ?></strong></td></tr>
			<tr><td>&nbsp;</td></tr>
			<tr><td><input type="submit" name="Submit" value="<?php echo $deco ; ?>" /></td></tr>
		</table>
	</form>

Quand je clique sur le bouton j'ai bien la fonction "confim()" qui est activé et je peux choisir entre "ok" et "annuler". Jusque là rien d'anormal.

Seulement, là où ça plante c'est que quelque soit mon choix il me recharge la page (en tombant à chaque fois dans le "else" je suppose).

Quelqu'un à la ligne pour remplacer ce

Code:
location.replace("le site visé") ;

qui me semble posé problème ?
 

DIEZ

WRInaute impliqué
phpmikedu83 a dit:
et un petit return false, non???

Dans ma fonction "deco()" j'intègre la fonction prédefinie "confirm()", celle ci gère automatiquement les 2 cas, si j'ai cliké sur "ok" je fais mon instruction (défectueuse pour l'instant) sinon je rentre dans le "else" et j'active ainsi ma fonction "refresh()" (qui elle marche correctement).

Alors selon toi jle met où le "return false" ?

edit : j'ai essayer de faire

Code:
<form name="form1" action="" method="post" target="" onSubmit="<?php header("Location : mon_site_visé") ; ?>">

et il grogne aussi
 

phpmikedu83

WRInaute passionné
Le but, du return false, c'est d'éliminer l'interpretation normale du clic (CAD envoi du FORM) qui renvoi à la même page puisque tu n'as pas défini l'attribut action ;-)
alors, moi je le mettrai à la fin de la fonction ;-)
 

DIEZ

WRInaute impliqué
Je vais mangé, je fais les test en rentrant et si ça marche jte fais un énorme calin virtuel ...
 

DIEZ

WRInaute impliqué
Jte dois un demi calin




J'ai essayer avec le "return false" mais ça n'a pas été très concluant, finalement j'ai opté pour :

Code:
<script language="javascript">
	function deco(){
		if (confirm("Désirez vous quitter l'interface d'administration ?")){
			window.location="mon_site_visé" ;
		}
		else{
			window.reload ;
		}
	}
</script>

et j'ai mis l'appel de la fonction de le "action" du form :
Code:
<form name="form1" action="javascript:deco()" method="post" target="" >

Merci beaucoup
 

Discussions similaires

Haut