1 pièce(s) jointe(s)
bouton radio non coché comparaison de 2 arrays
Bonjour
Je réalise un questionnaire de manière dynamique:
Code:
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
Pièce jointe 291882
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:
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:
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:
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:
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