j'ai un formulaire, en cliquant sur le bouton "soumettre":
voici mon code
<?php
if(isset($_POST['btn'])){
//do some task
?>
<script type="text/javascript">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();</script>
<?php
}
?>
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
mais pas capable de soumettre le formulaire, si j'appelle le code javascript sur onClick, ça marche. quel est le problème dans ce code, y a-t-il un travail autour pour ceci
Rappelez le javascript dans la fonction if
<form name="testForm" id="testForm" method="POST" >
<input type="submit" name="btn" value="submit" autofocus onclick="return true;"/>
</form>
<?php
if(isset($_POST['btn'])){
echo "
<script type=\"text/javascript\">
var e = document.getElementById('testForm'); e.action='test.php'; e.submit();
</script>
";
}
?>
Vous pouvez mettre tout votre JS comme ça, pour qu'il ne s'exécute pas avant que votre HTML ne soit prêt
$(document).ready(function() {
// some code here
});
Rappelez-vous que c'est jQuery alors incluez-le dans la section head. Voir aussi Pourquoi utiliser jQuery et non onload
Au moment de l'exécution du script, le bouton n'existe pas car le DOM n'est pas complètement chargé. La solution la plus simple serait de mettre le bloc de script après le formulaire.
Une autre solution serait de capturer le window.onload
événement ou utilisez la bibliothèque jQuery (saturation si vous n’avez que celui-ci JavaScript).