bonnebouffe
Messages postés38Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention24 novembre 2008
-
19 nov. 2008 à 06:31
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
22 nov. 2008 à 01:06
Bonjour,
Je coincé sur une bêtise, je ne vois pas trop comment appréhender le problème.
En PHP, j'ai un formulaire qui ressemble à ceci. Le nombre de lots peut varier et table est construite dynamiquement.
<form action="form.php" method="post" name="mesOrdres">
LOT 1,
TEL,
MONTANT,
CANCEL,
----
,
,
€,
,
----
LOT 2,
TEL,
MONTANT,
CANCEL,
----
,
,
€
</form>
Ce que je voudrais, c'est lorsqu'on sauve le formulaire, on vérifie, dans le cas ou le radio "MONTANT" est coché, que la zone "PRIX" soit également remplie et empêcher le submit si ce n'est pas ok.
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 22 nov. 2008 à 01:06
Bonjour,
Plusieures ERREURs dans ton code, la
plus importante c'est la logique de tes tests !!!!
La façon de récupérer
les name de tes boutons n'est pas au top non plus.
Une autre plus
sournoise et que quand tu mets des radio
button l'objet retourné est un tableau contenant tout les radio button d'un même name, liés entre eux par ce name justement, donc tu ne peux pas écrire radio.checked mais radio[1].checked par exemple.
Un exemple de ce à quoi pourrait ressembler ta fonction...
//----------------- function Verif(tot){
//-- Recup Objet FORM var O_Form =
document.mesOrdres;
//-- Parcours
for( var i = 0; i < tot; i++){
//-- Recup des Names
var szRadio = "ordre"
+( i+1) +"[]";
var szPrix = "prix" +( i+1) +"[]";
//-- Recup des Objets
var O_Radio =
O_Form[szRadio];
var O_Prix = O_Form[szPrix];
//-- Test Radio Montant
if(
O_Radio[1].checked){
//-- Test si champ vide
if( O_Prix.value == ""){
alert( "Veuillez
compléter le prix !")
//-- Met le focus sur
le champ
O_Prix.focus();
//-- Return FALSE
return( false);
}
else{
//-- Test si Not
a Numeric
if (isNaN( O_Prix.value)){
alert("Veuillez indiquer un nombre !")
//-- Efface la valeur O_Prix.value
="";
//-- Met le focus sur le champ
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 19 nov. 2008 à 07:08
Bonjour,
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, dans le cas ou le radio \"MONTANT\" est coché,
que la zone \"PRIX\" soit également
remplie</td>
</td></tr></tbody></table>Pourquoi
utiliser un radio MONTANT ?
Il te suffit de vérifier avant de submiter ta
FORM, que le champ prix est renseigné.
<table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, empêcher le submit si ce n'est pas
ok</td>
</td></tr></tbody></table>Si ce champ
n'est pas renseigné alors la fonction affectée au submit, absente dans ton cas,
retourne false
Nota :
ne
pas oublier de faire les vérif coté PHP, si javascript désactivé...
;O)
bonnebouffe
Messages postés38Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention24 novembre 2008 19 nov. 2008 à 07:34
Bonjour,
En fait, au niveau du look de la page, je n'ai pas le choix, il m'est imposé. De fait, je suis obligé d'utiliser des radios ...
Au niveau PHP, je l'ai déjà programmé mais c'est la partie javascript qui me pose problème, j'aurais voulu offrir cette possibilité avant le submit du form ...
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 19 nov. 2008 à 17:51
Bonjour,
<table bgcolor= "#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, suis obligé d'utiliser des
radios</td>
</td></tr></tbody></table>bon soit...
il te faut créer une fonction de vérification de ton formulaire, dans
laquelle tu testeras que si le radio MONTANT
est coché l'input PRIX correspondant est non
vide ou plus exactement non vide et est un nombre, si c'est bon la fonction
return( true) dans le cas
contraire la fonction return(false).
Ne pas omettre de mettre sur le submit de la
form return( Fct_Verif();)
Entre nous...
Tu peux également mettre le disabled du radio à true si le champ est correct, comme cela
tout le monde est content.
<table bgcolor ="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, je n'ai pas le choix, il m'est
imposé</td>
</td></tr></tbody></table>demandes à
celui qui t'impose cela si lorsqu'il va parler il vérifie que sa bouche est
ouverte ou si elle s'ouvre automatiquement quand il parle !
;O)
Vous n’avez pas trouvé la réponse que vous recherchez ?
bonnebouffe
Messages postés38Date d'inscriptionlundi 15 septembre 2003StatutMembreDernière intervention24 novembre 2008 21 nov. 2008 à 16:53
Après pas mal d'énervement, j'y suis presque Il me manque encore le contrôle pour voir si c'est un numérique, ça ne fonctionne pas dans mon exemple ...
Si quelqu'un a une idée
function validerForm(tot)
{
var error=0
if (document.forms[0].accepte1.checked == false && document.forms[0].accepte2.checked == false) {
alert("Vous devez accepter les conditions générales");
error++
} else {
for (var i=0;i<tot;i++) {
mon = "document.forms[0].ordre" + i + "[1]"
prx = "document.forms[0].prix" + i if (eval(prx).value "" && eval(mon).checked true) {
if (isNaN(eval(prx).value) == true) {
alert("Veuillez indiquer un nombre !")
} else {
alert("Veuillez compléter le prix !")
}
error++
}
}
}
if (error==0) {
return true;
} else {
return false
}
}