11523 sujets

JavaScript, DOM et API Web HTML5

Bonsoir, sur la liste de SGautorépondeur je souhaite que les utilisateurs qui clique sur "Envoyer", on leur page qui s'actualise.

J'ai essayé d'ajouter :

onclick="document.location.reload(false)"

Un peu partout, mais ça ne fonctionne pas. J'ai bien le target blank, et l'inscription, mais la page s'actualise pas..

Merci d'avance, voici mon code :


<form accept-charset="UTF-8" action="http://sg-autorepondeur.com/inscriptionabonne.php" enctype="utf-8" method="post" target="_blank">&nbsp;
<table cellspacing="5" style="font-size:13px;">
	<tbody>
		<tr>
			<td style="border:0px solid;"><b>Votre email : </b></td>
			<td style="border:0px solid;"><input name="email" size="25" type="text" value="" id="idmail" /></td>
			<td style="border:0px solid;"><input name="valider" type="submit" value="Envoyer"/><input name="listeid" type="hidden" value="43425" /><input name="membreid" type="hidden" value="9740" /></td>
		</tr>
	</tbody>
</table>
</form>
Alors y'a pas mal de problème, tant en terme d'utilisation de code que de compréhension

onclick="document.location.reload(false)"


le "onclick" ne s'utilise plus trop, on gére l'évenement directement dans le code

en JavaScript
var refresh = window.getElementById('refresh');
refresh.addEventListener('click', location.reload(), false);


En Jquery
$('#refresh').on('click', function() {
    location.reload();
});


Après ce n'est QUE pour rafraichir, donc une balise bouton (qui est plus utilisé pour un formulaire) est pas trop mal
<button id="refresh" onclick="document.location.reload(false)"> Rafraichir </button>


le "target blank" sert uniquement à ouvrir dans un nouvelle onglet

et ton action dans le formulaire....
action="http://sg-autorepondeur.com/inscriptionabonne.php"


je te conseil de relire la doc
http://php.net/manual/fr/tutorial.forms.php
Bonsoir,

Je sais, mais ça fonctionne pas!

J'ai mis dans le header :

<script type="text/javascript">
var refresh = window.getElementById('refreshh');
refresh.addEventListener('click', location.reload(), false);
</script>


Et mon code HTML :

<td style="border:0px solid;"><input name="valider" type="submit" value="Envoyer" id="refreshh"/><input name="listeid" type="hidden" value="43425" /><input name="membreid" type="hidden" value="9740" /></td>


Mais cela ne fonctionne pas..
Déjà si tu veux pouvoir rattacher un évènement à ton bouton: il faut qu'il existe..
Au moment ou ton script est exécuté (depuis le <head>), ton bouton n'existe pas encore car le <body> de ta page n'est pas encore chargé.
Premièrement il faut que tu place la balise script à la fin de ton body (juste avant la balise de fermeture).

Et il faut aussi que tu le corriges, le code n'est pas bon :
var refresh = window.getElementById('refreshh');
refresh.addEventListener('click', function(){
    location.reload()
}, false);


Et là ta page va se recharger après soumission du formulaire. Le souci c'est que ça le faisait déjà avant (avec ton attribut onclick), du coup c'est certainement que ta page se recharge mais comme tu fais apparaitre une autre page (avec la soumission d'un formulaire avec target="_blank") tu ne t'en rends pas compte.