IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire php contrôlé en JavaScript(contrôle qui ne fonctionne pas)


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut Formulaire php contrôlé en JavaScript(contrôle qui ne fonctionne pas)
    Bonjour,
    J'ai créé un formulaire qui crée des formulaires html+php qui fonctionne parfaitement. Cependant je voulais le protéger des oublis et des mauvaises entrées, c'est pour ca que je me suis lancé dans le javascript que je ne maîtrise pas encore beaucoup.
    Voici donc mes deux premières pages:
    1e page: Tout fonctionne et les arguments passent à la seconde page
    2e page: Tout fonctionne sauf le java que je ne sais surement pas intégrer correctement dans le php.
    Conclusion: Je galère et j'ai besoin de votre aide.
    Merci d'éclairer ma lanterne!

    Page1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <html>
    <SCRIPT type="text/JavaScript">
    function verif()
    {a = document.form1.arguments.value;
    if (document.form1.question.value == "")
    alert("Il est évident que pour obtenir des réponses il vaut mieux poser une question!");
    else if ((a<1) || (a>10)) 
    alert("Le nombre d'arguments doit être compris entre 1 et 10!");
    else return true;
    return false;
    }
    </SCRIPT>
    <body>
    Pour créer une nouvelle question, remplissez ce formulaire:
    <form method=post action=questcrea2.php name=form1 onsubmit="return verif()">
    Ecrivez ici votre question<br>
    <input type=text maxlenght=300 name=question size=100></input>
    <br>Choisissez votre catégorie d'input:<br>
    <input type=radio name=qstyle value=checkbox checked>Checkbox</input><br>
    <input type=radio name=qstyle value=radio>Radio</input><br>
    <input type=radio name=qstyle value=text>Text</input><br>
    <br>Choisissez votre nombre d'arguments:<br>
    <br><input type=text name=arguments></input><br>
    <input type=submit name=Soumission value=Valider onsubmit=return verif()> 
    </form>
    </body>
    </html>
    Page 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php session_start(); ?>
    <html>
    <SCRIPT type="text/JavaScript">
    function verif()
    {
    	var argnbr = '<?php echo $_POST['arguments']; ?>';
    	i=1;
    	for (i=1; i<=argnbr; i++){
    		if (document.form2.answer[i].value == "")
    		{ alert ("Veuillez remplir chaque case du formulaire!"); return false; break;}
    		else return true;
    	}
     
    }
    </SCRIPT>
    <body>
    <?php
    $_SESSION['question']=$_POST['question'];
    $question=$_SESSION['question'];
     
    $_SESSION['qstyle']=$_POST['qstyle'];
    $qstyle=$_SESSION['qstyle'];
     
    $_SESSION['arguments']=$_POST['arguments'];
    $arguments=$_SESSION['arguments'];
     
    $checkbox = false;
    $radio=false;
    //$answer=array();
     
    if (isset($question) && isset($qstyle) && isset($arguments)){
    	if($qstyle == 'checkbox'){
    		echo "<form method=post action=questcrea3.php name=form2 onsubmit=return verif()>";
    			for( $i=1 ; $i<=$arguments ; $i++ ){
    			 echo "<br>Veuillez entrer votre $i e réponse ici:";
    			 echo '<input type=text name="answer['.$i.']"></input>';
    			}
    		echo "<input type=submit name=Soumission value=Valider>";
    		echo "</form>";
    		$_SESSION['suite']= 'checkbox';
    //		$tab=$answer[$i];
    //		$stab=serialize($tab);
    //		$_SESSION['tableau']=$stab;
    	}elseif($qstyle == 'radio'){
    		echo "<form method=post action=questcrea3.php>";
    			for($i=1; $i<=$arguments;$i++){
    			 echo "<br>Veuillez entrer votre $i\e réponse ici:";
    			 echo '<input type="text" name="answer['.$i.']"></input>';
    			}
    		echo "<input type=submit name=Soumission value=Valider onsubmit=return verif()>";
    		echo "</form>";
    		$_SESSION['suite']= 'radio';
    //		$tab=$answer();
    //		$stab=serialize($tab);
    //		$_SESSION['tableau']=$stab;
    	}else{
    //	echo $_POST[''];
    	}
    }
    ?>
    </body>
    </html>

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    essaie ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (document.form2["answer['"+i+"']"].value == "")
    		{ alert ("Veuillez remplir chaque case du formulaire!"); return false; break;}
    		else return true;

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Bonjour,
    Ca ne fonctionne pas, même avec un "." après form2. Es tu sur de ta syntaxe?
    Peut etre le probleme vient il d'ailleurs?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (i=1; i<=argnbr; i++){
    		if (document.form2.["answer['"+i+"']"].value == "")
    		{ alert ("Veuillez remplir chaque cases du formulaire!"); return false; break;}
    		else return true;
    	}

  4. #4
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,
    je suis bien sûr de la syntaxe (il n'y a bien pas de point après form2 ).

    Peux-tu nous montrer le code généré de ta page? (celui que tu as en faisant "afficher la source" dans le navigateur )

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>
    <SCRIPT type="text/JavaScript">
    function verif()
    {
    	var argnbr = '2';
    	i=1;
    	for (i=1; i<=argnbr; i++){
    		if (document.form2["answer['"+i+"']"].value == "")
    		{ alert ("Veuillez remplir chaque case du formulaire!"); return false; break;}
    		else return true;	}	
    }
    </SCRIPT>
    <body>
    <form method=post action=questcrea3.php name=form2 onsubmit=return verif()><br>Veuillez entrer votre 1 e réponse ici:<input type=text name="answer[1]"></input><br>Veuillez entrer votre 2 e réponse ici:<input type=text name="answer[2]"></input><input type=submit name=Soumission value=Valider></form></body>
    </html>

  6. #6
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    bah alors le code sera:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function verif()
    {
    	var argnbr = '2';
    	i=1;
    	for (i=1; i<=argnbr; i++){
    		if (document.form2["answer["+i+"]"].value == "")
    		{ alert ("Veuillez remplir chaque case du formulaire!"); return false; break;}
    		else return true;	}	
    }
    J'avais vu des guillemets en trop, mais le code généré m'a permis de voir mon erreur :p

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Merci pour tout, ca fonctionne désormais. J'ai également rajouté des "" dans le <form onsubmit="verif()"> car sans cela la fonction n'était pas appelée.
    Le code définitif et fonctionnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php session_start(); ?>
    <html>
    <SCRIPT type="text/JavaScript">
    function verif()
    {
    	var argnbr = '<?php echo $_POST['arguments']; ?>';
    	i=1;
    	for (i=1; i<=argnbr; i++){
    		if (document.form2["answer["+i+"]"].value == "")
    		{ alert ("Veuillez remplir chaque cases du formulaire!"); return false; break;}
    		}
    	return true;	
    }
    </SCRIPT>
    <body>
    <?php
    $_SESSION['question']=$_POST['question'];
    $question=$_SESSION['question'];
     
    $_SESSION['qstyle']=$_POST['qstyle'];
    $qstyle=$_SESSION['qstyle'];
     
    $_SESSION['arguments']=$_POST['arguments'];
    $arguments=$_SESSION['arguments'];
     
    $checkbox = false;
    $radio=false;
    //$answer=array();
     
    if (isset($question) && isset($qstyle) && isset($arguments)){
    	if($qstyle == 'checkbox'){
    		echo "<table border=2>";
    		echo '<form method=post action=questcrea3.php name=form2 onsubmit="return verif()">';
    			for( $i=1 ; $i<=$arguments ; $i++ ){
    			 echo "<tr><td>Veuillez entrer votre $i e réponse ici:</td>";
    			 echo '<td><input type=text name="answer['.$i.']"></input></td>';
    			 echo '<br><td><input type=checkbox name="vrai['.$i.']"></td><br>';
    			}
    		echo '</table><input type=submit name=Soumission value=Valider onsubmit="return verif()">';
    		echo "</form>";
    		$_SESSION['style']= 'checkbox';
    //		$tab=$answer[$i];
    //		$stab=serialize($tab);
    //		$_SESSION['tableau']=$stab;
    	}elseif($qstyle == 'radio'){
    		echo "<table border=2>";
    		echo '<form method=post action=questcrea3.php name=form2 onsubmit="return verif()">';
    			for($i=1; $i<=$arguments;$i++){
    			 echo "<tr><td>Veuillez entrer votre $i\e réponse ici:</td>";
    			 echo '<td><input type="text" name="answer['.$i.']"></input></td>';
    			 echo '<br><td><input type=checkbox name="vrai['.$i.']"></td><br>';
    			}
    		echo '</table><input type=submit name=Soumission value=Valider onsubmit="return verif()">';
    		echo "</form>";
    		$_SESSION['style']= 'radio';
    //		$tab=$answer();
    //		$stab=serialize($tab);
    //		$_SESSION['tableau']=$stab;
    	}else{
    //	echo $_POST[''];
    	}
    }
    ?>
    </body>
    </html>

  8. #8
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Sauf que ça marchera pas si tu demande d'utiliser le type "radio" (t'as pas mis de "name" au formulaire )

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Oui, oui. Pas de problème pour ca! J'avais plus de mal au niveau de javascript! Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage tableau PHP vers fonction javascript - contrôle de choix
    Par carkiko dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/04/2015, 12h08
  2. Un contrôle de formulaire qui ne fonctionne pas
    Par renaud26 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 11/01/2011, 02h20
  3. Réponses: 4
    Dernier message: 17/02/2008, 15h54
  4. [javascript]fonction qui ne fonctionne pas(concernant div)
    Par ranell dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/04/2007, 17h38
  5. [Javascript] Fonction qui ne fonctionne pas sous Opera et Safari
    Par frechy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/02/2007, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo