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

PHP & Base de données Discussion :

bouton radio non coché comparaison de 2 arrays [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 39
    Points : 29
    Points
    29
    Par défaut bouton radio non coché comparaison de 2 arrays
    Bonjour

    Je réalise un questionnaire de manière dynamique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    elseif ($type == 'radio') {
          echo "<tr bgcolor='F2F2F2'>
    	       <td  align='right' width='5%'>$ID</td>
    		<td  align='right'>$txt</td><td bgcolor='F2F2F2' >";
    		for ($i = 1; $i <= $nbOpt; $i++) {
    			echo "<br><input name='$nomVar' type='$type'  value='${"option".$i}' > ${"option".$i}	";
    		}
    		echo"</td></tr>";
    }
    Je voudrais vérifier que l'utilisateur a bien répondu à toutes les questions: dans cet exemple, il a oublié la question 6
    Nom : probleme.JPG
Affichages : 69
Taille : 18,8 Ko

    Bien entendu $_POST ne contient que les 5 boutons radios auxquels l'utilisateur a repondu:
    //Array ( [questionnaire] => CE_dya [cedya01] => oui [cedya02] => oui [cedya03] => oui [cedya04] => oui [cedya05] => oui)

    Je fais donc une requete sur la DB qui contient les noms de variables à afficher:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sqlVarOK = "SELECT nomVar FROM $questionnaire WHERE type = 'radio'";
    $rqVarOK = mysql_query($sqlVarOK) or die ('Erreur SQL !<br>'.$sqlVarOK.'<br>'.mysql_error()); 
    $result= mysql_fetch_array($rqVarOK);
    et j'obtiens les arrays issus de la DB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($rsVar = mysql_fetch_assoc($rqVar)){
    //imprime Array ( [nomVar] => cedya01 ) Array ( [nomVar] => cedya02 ) Array ( [nomVar] => cedya03 ) Array ( [nomVar] => cedya04 ) Array ( [nomVar] => cedya05 ) Array ( [nomVar] => cedya06 )
    print_r($rqVar));
    }
    Il faut donc comparer les 2 arrays, plus précisément les valeurs de $_POST avec les clés de l'array issue de la DB mais:

    - array_flip ne retourne que les valeurs uniques donc KO, j'ai essayé une fonction array_safe_flip trouvée ici, mais j'ai une concaténation des variables ("cedya01,cedya02..")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function array_safe_flip (array $arr) {
      $ret = array();
      foreach ($arr as $key => $value) {
         if (isset($ret[$value]))
           $ret[$value] .= ",{$key}";
         else
           $ret[$value] = $key;
      }
      return $ret;
    }
    - de toute façon, l'array issu de la DB est une suite d'arrays

    J'ai pû comparer les clés présentes dans $_POST une à une avec in_array, mais je voudrais comparer les deux arrays globalement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if $_POST == $array2 {
    requetes  create/update/insert qui fonctionnent
    Je ne suis vraiment pas sûr d'être dans la bonne voie

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je m'y prendrais autrement.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ok = true;
    while($rsVar = mysql_fetch_assoc($rqVar)){
      $champ = $rsVar ['nomVar'] ;
      if (! isset($_POST[$champ])) {
        $ok = false;
      }
    }

    Ensuite tu peux aussi indiquer quel(s) champ(s) manque(nt).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    S'il s'agit uniquement de vérifier le nombre de réponses :

    1/ dans le formulaire, un input type hidden contenant le nombre de questions.
    2/ traitement, on compare ce nombre au nombre de radio cochees
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ( empty( $_POST['radio_reponses'] ) || $_POST['nbre_questions'] != count( $_POST['radio_reponses'] ) ) 
    echo 'pas bon!';
    CQFD.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Grand merci pour vos réponses

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

Discussions similaires

  1. Boutons radio non cochés
    Par philippef dans le forum Langage
    Réponses: 8
    Dernier message: 26/06/2008, 20h23
  2. alerte boutons radio non coché
    Par i_need_to_know dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/09/2007, 17h05
  3. Réponses: 4
    Dernier message: 17/04/2007, 15h24
  4. [XHTML] Bouton radio non coché sous IE
    Par navis84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/08/2006, 14h03
  5. Valeur d'un groupe de boutons radio non sélectionnés ??
    Par michaelbob dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/11/2005, 16h27

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