Problème de if dans une function

Problème de if dans une function - HTML/CSS - Programmation

Marsh Posté le 07-08-2010 à 22:42:52    

Bonjour,
 
Voici mon problème. Je débute, mais je parie que c'est tout bête...
 
J'ai une fonction comme ceci:

Code :
  1. function verifForm(f)
  2. {
  3.    var nomOk= verifpreneur(f.nom);
  4.    var prenomOk = verifpreneur(f.prenom);
  5.    var rueOk= verifpreneur(f.rue);
  6.    ...


 
J'aimerais rajouter un var supplémentaire avec une condition, mais je n'arrive pas à l'écrire.
Pouvez-vous me corriger?
L'idée était:

Code :
  1. function verifForm(f)
  2. {
  3.    var nomOk= verifpreneur(f.nom);
  4.    var prenomOk = verifpreneur(f.prenom);
  5.    var rueOk= verifpreneur(f.rue);
  6.  
  7.    if($_SESSION['radios_0'] == Oui)
  8.    {
  9.       var numero_tvaOk = verifcompte(f.numero_tva);
  10.    }
  11.    ...


Reply

Marsh Posté le 07-08-2010 à 22:42:52   

Reply

Marsh Posté le 08-08-2010 à 00:31:56    

Tu dois mettre Oui entre guillemets (si c'est ça la question)

 

Mais j'ai comme un doute. T'es en PHP ?

Message cité 1 fois
Message édité par WiiDS le 08-08-2010 à 00:32:18

---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 08-08-2010 à 09:46:38    

WiiDS a écrit :

Tu dois mettre Oui entre guillemets (si c'est ça la question)
 
Mais j'ai comme un doute. T'es en PHP ?


Oui je suis bien en PHP, mais je vais reformuler mon problème car je vois que je me trompe...
 
Alors voilà, j'ai dans mon formulaire le champ suivant:

Code :
  1. tr>
  2.         <td><label for="tva">Etes-vous assujetti à la TVA?</label></td>
  3.         <td id="td_radios_0"><input type="radio" id="tva_oui" name="radios_0" onClick="javascript:visibilite('form_tva'); " value="Oui" <?php if ($_SESSION['radios_0'] == Oui) echo 'checked="checked"' ?> >&nbsp;Oui&nbsp;&nbsp;<input type="radio" id="tva_non" name="radios_0" onClick="javascript:invisibilite('form_tva'); " value="Non" <?php if ($_SESSION['radios_0'] == Non) echo 'checked="checked"' ?> />&nbsp;Non</td>
  4. </tr>


J'ai un Onclick qui permet d'afficher le div 'form_tva' qui est plus bas (caché au départ).
Tout ça fonctionne. Mon problème est que je voudrais rendre le champ "numero_tva" obligatoire SI "radios_0 == Oui". Et pas obligatoire si c'est "non", surtout que ce champ est dans mon div caché qui apparait seulement si c'est oui.
 
Pour rendre certains champs obligatoires, j'utilise:

Code :
  1. function surligne(champ, erreur)
  2. {
  3.    if(erreur)
  4.       champ.style.backgroundColor = "#fba";
  5.    else
  6.       champ.style.backgroundColor = "";
  7. }
  8. function verifpreneur(champ)
  9. {
  10.    if(champ.value.length < 2 || champ.value.length > 25)
  11.    {
  12.       surligne(champ, true);
  13.       return false;
  14.    }
  15.    else
  16.    {
  17.       surligne(champ, false);
  18.       return true;
  19.    }
  20. }


Alors comment puis rendre obligatoire mon champ "numero_tva" à la condition que "radios_0 == Oui"?
 
NB: Je ne veux pas utiliser $_SESSION comme j'avais commencé au-dessus, car cette variable ne sera pas encore remplie au départ!
 
Merci d'avance!!!


Message édité par bingojm le 08-08-2010 à 09:49:38
Reply

Marsh Posté le 08-08-2010 à 09:58:39    

Code :
  1. $foo == "bar";
 

Et non

 
Code :
  1. $foo == bar;

Message cité 1 fois
Message édité par Dj YeLL le 08-08-2010 à 09:59:19

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 08-08-2010 à 10:13:07    

Dj YeLL a écrit :

Code :
  1. $foo == "bar";


 
Et non  
 

Code :
  1. $foo == bar;



Tu parles de  

Code :
  1. if($_SESSION['radios_0'] == Oui)


qui devrait être

Code :
  1. if($_SESSION['radios_0'] == "Oui" )


OK, mais je ne peux pas utiliser $_session à ce stade vu que j'utilise $_session pour récupérer les infos de ma 2ème page pour quand je reviens vers la première.
A moins que $_session enregistre déjà les infos quand je suis sur ma première page?

Reply

Marsh Posté le 08-08-2010 à 12:59:25    

tu mélange le JS et le PHP revoit un peu les bases o_O


---------------
Blablaté par Harko
Reply

Marsh Posté le 08-08-2010 à 14:00:55    

Salut,
 
Comme le dit Gatsu35, tu veux utiliser du PHP ($_SESSION) dans du Javascript... Et c'est pas possible et n'a meme pas de sens: Javascript est coté client et PHP coté serveur.
 
Bref, ca ne peut pas marcher...
 
Je pense que ce que tu "veux" faire, c'est regarder directement dans la DOM si le radio button de la TVA est coché ou non.
Pour cela, tu peux partir de ta form passée en paramètre (f), récupérer ton groupe de boutons (radios_0) et regarder si c'est le premier qui est coché ([0].checked):

if (f.radios_0[0].checked) {
 var numero_tvaOk = verifcompte(f.numero_tva);
}

Ou sinon, vu que tu as donné un identifiant au bouton "TVA oui":

if (document.getElementById('tva_oui').checked) {
 var numero_tvaOk = verifcompte(f.numero_tva);
}


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 08-08-2010 à 19:48:49    

C'est super, cela fonctionne si tva_oui est bien coché, la vérification du champs se fait bien.
Par contre, si je coche tva_oui par erreur et que je recoche tva_non à la place, la variable se déclanche quand même à moitié et je me retrouve bloqué à moins que je ne recoche tva_oui et compléte le n° de tva.
Y a-t-il une solution pour éviter ce problème?

Reply

Marsh Posté le 09-08-2010 à 02:14:45    

Rajoute un alert dans le if, puis déclenche-le dans les deux cas (coché, coché puis décoché) pour déterminer la différence entre les deux...

if (f.radios_0[0].checked) {
 alert(f.radios_0[0].checked);
 var numero_tvaOk = verifcompte(f.numero_tva);
}


Ensuite adapte le test. Je suppute que ca va donner un test genre ca: if (f.radios_0[0].checked=='checked').
Edit: évidemment, une fois que ton test est bon, enlève le alert :)


Message édité par lasnoufle le 09-08-2010 à 02:16:13

---------------
C'était vraiment très intéressant.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed