Attention aux entrées maladroites sur un forum. C'est très mal perçues. (bonjour, svp, merci ) (!!)
Et l'eau,
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours !
*rendons à César, ce qui lui appartient.
Règle n°3 : toujours valider son code
Règle n°4 : toujours commencer par le HTML et le CSS avant de se lancer dans un langage dynamique
*erf, j'extrapole.
Là ton code html est tout simplement faux !
L'élément form ne peut pas être l'enfant de l'élément table ou tr.
Après ton code js me parait intrusif/obstructif et j'ai aussi l'impression que tu fais une petite erreur : Tu n'es pas obligé d'échapper vu que tu utilises des doubles quotes. Je ne suis pas fortiche en js (si quelqu'un peut me dire si j'ai fait une faute, je le remercie), mais il me semble que ce serait mieux de faire ceci :
Code : Tout sélectionner
function check(){
var formulaire = document.getElementsByTagName("form").item(0);
if(formulaire){
formulaire.onsubmit = function(){
var prenom = document.getElementById("prenom");
if(prenom){
if(prenom.value == ""){ /* une RegEx c'est mieux ;) */
alert("prénom doit contenir une valeur"); /* créer dynamiquement les balises et/ou une valeur, c'est mieux */
return false;
}
}
}
}
}
window.onload = function(){
check();
}
Après l'HTML :
<!-- suite -->
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["SCRIPT_NAME"]); ?>">
<fieldset>
<legend>mon formulaire</legend>
<p>
<label for="prenom">prénom : <input type="text" name="prenom" id="prenom" /></label>
<input type="hidden" name="__envoi" value="__ok" />
<input type="submit" name="envoi" value="vas-y" />
</p>
</fieldset>
</form>
</body>
<!-- suite -->
et pour le php :
<?php
if(isset($_POST["__envoi"]) && $_POST["__envoi"] === "__ok"){
if(trim($_POST["prenom"]) === ""){ // un RegEx c'est mieux
echo "prénom ne doit pas être vide";
}else{
echo "ok";
// faire action !
}
}
?>
Ce qui donne :
<?php
if(isset($_POST["__envoi"]) && $_POST["__envoi"] === "__ok"){
if(trim($_POST["prenom"]) === ""){
echo "prénom ne dit pas être vide";
}else{
echo "ok";
// faire action !
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>formulaire</title>
<script type="text/javascript">
function check(){
var formulaire = document.getElementsByTagName("form").item(0);
if(formulaire){
formulaire.onsubmit = function(){
var prenom = document.getElementById("prenom");
if(prenom){
if(prenom.value == ""){
alert("prénom ne dit pas être vide");
return false;
}
}
}
}
}
window.onload = function(){
check();
}
</script>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["SCRIPT_NAME"]); ?>">
<fieldset>
<legend>mon formulaire</legend>
<p>
<label for="prenom">prénom : <input type="text" name="prenom" id="prenom" /></label>
<input type="hidden" name="__envoi" value="__ok" />
<input type="submit" name="envoi" value="vas-y" />
</p>
</fieldset>
</form>
</body>
</html>
J'ai fait simple. À toi d'améliorer. Au passage, je n'ai pas vérifié si mon code est valide. Cependant, il me parait juste. À vérifier...
<mode vendredÿ="on">
euh, il y en a qui continu à coder en asp ? euh asp, c'est pas str_anagrame(traduction("not")) ? // pas
</mode>
Bon code
@mere-teresa : si tu lies ce message, peux tu me dire ta règle n°1, stp ?
Attention aux entrées maladroites sur un forum. C'est très mal perçues. (bonjour, svp, merci ) (!!)
Et l'eau,
[quote="mere-teresa"]
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours !
[/quote]
[i]*rendons à César, ce qui lui appartient. [/i]
[quote="moi"]
Règle n°3 : toujours valider son code
Règle n°4 : toujours commencer par le HTML et le CSS avant de se lancer dans un langage dynamique
[/quote]
[i]*erf, j'extrapole. [/i]
Là ton code html est tout simplement faux !
L'élément form ne peut pas être l'enfant de l'élément table ou tr. ;)
Après ton code js me parait intrusif/obstructif et j'ai aussi l'impression que tu fais une petite erreur : Tu n'es pas obligé d'échapper vu que tu utilises des doubles quotes. Je ne suis pas fortiche en js (si quelqu'un peut me dire si j'ai fait une faute, je le remercie), mais il me semble que ce serait mieux de faire ceci :
[code]
function check(){
var formulaire = document.getElementsByTagName("form").item(0);
if(formulaire){
formulaire.onsubmit = function(){
var prenom = document.getElementById("prenom");
if(prenom){
if(prenom.value == ""){ /* une RegEx c'est mieux ;) */
alert("prénom doit contenir une valeur"); /* créer dynamiquement les balises et/ou une valeur, c'est mieux */
return false;
}
}
}
}
}
window.onload = function(){
check();
}
[/code]
Après l'HTML :
[html]
<!-- suite -->
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["SCRIPT_NAME"]); ?>">
<fieldset>
<legend>mon formulaire</legend>
<p>
<label for="prenom">prénom : <input type="text" name="prenom" id="prenom" /></label>
<input type="hidden" name="__envoi" value="__ok" />
<input type="submit" name="envoi" value="vas-y" />
</p>
</fieldset>
</form>
</body>
<!-- suite -->
[/html]
et pour le php :
[php]
<?php
if(isset($_POST["__envoi"]) && $_POST["__envoi"] === "__ok"){
if(trim($_POST["prenom"]) === ""){ // un RegEx c'est mieux
echo "prénom ne doit pas être vide";
}else{
echo "ok";
// faire action !
}
}
?>
[/php]
Ce qui donne :
[php]
<?php
if(isset($_POST["__envoi"]) && $_POST["__envoi"] === "__ok"){
if(trim($_POST["prenom"]) === ""){
echo "prénom ne dit pas être vide";
}else{
echo "ok";
// faire action !
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>formulaire</title>
<script type="text/javascript">
function check(){
var formulaire = document.getElementsByTagName("form").item(0);
if(formulaire){
formulaire.onsubmit = function(){
var prenom = document.getElementById("prenom");
if(prenom){
if(prenom.value == ""){
alert("prénom ne dit pas être vide");
return false;
}
}
}
}
}
window.onload = function(){
check();
}
</script>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["SCRIPT_NAME"]); ?>">
<fieldset>
<legend>mon formulaire</legend>
<p>
<label for="prenom">prénom : <input type="text" name="prenom" id="prenom" /></label>
<input type="hidden" name="__envoi" value="__ok" />
<input type="submit" name="envoi" value="vas-y" />
</p>
</fieldset>
</form>
</body>
</html>
[/php]
J'ai fait simple. À toi d'améliorer. Au passage, je n'ai pas vérifié si mon code est valide. Cependant, il me parait juste. À vérifier...
<mode vendredÿ="on">
euh, il y en a qui continu à coder en asp ? euh asp, c'est pas str_anagrame(traduction("not")) ? // pas
</mode>
Bon code
@mere-teresa : si tu lies ce message, peux tu me dire ta règle n°1, stp ?