Bonjour

Dans une Form, je peux :
• saisir une adresse mail, une Url, d’autres choses
• choisir l’action : ajout, modification, suppression

Pour choisir l’action, j’ai un bouton radio :

<label> <input type="radio" name="choix" value="modification" checked="checked" /> Modification </label>

par exemple.

J’essaie de contrôler la saisie d’une adresse mail, par exemple, sauf s’il s’agit d’une suppression :

<?php if ( ($domaine == "messagerie") || ($choix != "suppression") ) { ?> onSubmit="return ( checkFieldsA() )" <?php } ?>

en essayant de générer le onSubmit sauf s’il s’agit d’une suppression.

Ca ne fonctionne pas car la variable $choix = $_POST['choix']; n’est visiblement pas initialisée au chargement de la page avant d'entrer dans la Form.

Pour cette raison le Php génère toujours le code OnSubmit et le contrôle de syntaxe d’adresse mail est fait même pour une suppression.

Merci par avance de vos conseils pour ce contrôle sélectif.

Francois
Bonjour

Je repose ma question autrement (mieux?):

Dans une Form, je peux :
• Au choix, saisir une adresse mail, une Url, d’autres choses
• Choisir l’action : ajout, modification, suppression

Pour choisir l’action, j’ai un bouton radio :

<label> <input type="radio" name="choix" value="modification" checked="checked" /> Modification </label>

par exemple.

Je cherche à contrôler la saisie, par exemple d’une adresse mail, sauf s’il s’agit d’une suppression.

Je sais dans $choix = $_POST['choix']; s’il s’agit d’une suppression (= "suppression").

Question : comment transmettre à la fonction de contrôle Javascript déclenchée par le onSubmit la valeur de $choix initialisée par le bouton radio.

Merci par avance de vos conseils.

Francois
Salut,

(sujet déplacé)

francoisch a écrit :

Je cherche à contrôler la saisie
Tu parles donc d'un contrôle côté client... et donc en JavaScript ?


francoisch a écrit :

Je sais dans $choix = $_POST['choix']; s’il s’agit d’une suppression (= "suppression").
Non car $_POST['choix'] n'existera que lorsque le formulaire aura été soumis. Tu es donc obligé de te servir là-encore de JavaScript.


francoisch a écrit :

Question : comment transmettre à la fonction de contrôle Javascript déclenchée par le onSubmit la valeur de $choix initialisée par le bouton radio.
C'est beaucoup plus simple d'appeler toujours la fonction sur le onsubmit du formulaire et de vérifier ensuite la valeur de choix.

Par exemple :
<script type="text/javascript"><!-- 
function verifierForm() {
	if(!document.getElementsByName) { return; }
	var eChoix = document.getElementsByName('choix');
	for(var iI = 0; iI < eChoix.length; ++iI){
		alert(eChoix[iI].value+' > '+eChoix[iI].checked);
	}
}
--></script>
</head>
<body>
...
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="verifierForm();" id="formulaire">
	<p>
		<input type="radio" name="choix" id="choix1" value="ajout" checked="checked" /><label for="choix1"> Ajout </label>
	</p>
	<p>
		<input type="radio" name="choix" id="choix2" value="modification" checked="checked" /><label for="choix2"> Modification </label>
	</p>
	<p>
		<input type="radio" name="choix" id="choix3" value="suppression" checked="checked" /><label for="choix3"> Suppression </label>
	</p>
	<p>
		<input type="submit" value="Envoyer" />
	</p>
</form>

En passant il est préconisé d'utiliser la forme explicite de LABEL (for="id")