Récupérer les id des 5 premières cases cochées

WRInaute passionné
Bonjour,

J'ai une pile de 30 cases à cocher, comme suit :
Code:
<input type="checkbox" name="specialite[]" value="2" id="1" >choix 1
<input type="checkbox" name="specialite[]" value="3" id="2" >choix 2
<input type="checkbox" name="specialite[]" value="4" id="3" >choix 3
<input type="checkbox" name="specialite[]" value="5" id="4" >choix 4
<input type="checkbox" name="specialite[]" value="6" id="5" >choix 5
<input type="checkbox" name="specialite[]" value="7" id="6" >choix 6

Dans la base de donnée, j'ai 5 champs :
Code:
specialiteA, specialiteB, specialiteC, specialiteD, specialiteE

Le client va cocher, par exemple, les cases 2, 4, 8, 15, 16, 26, 30.

Dans ce cas, je veux récupérer les 5 premières cases cochées, soit ici 2, 4, 8, 15, 16 et les expédier respectivement dans specialiteA, specialiteB, specialiteC, specialiteD, specialiteE.

S'il en a coché que 3, par exemple, alors on utilise seulement les champs sA, sB, et sC. S'il en a coché plus que 5, l'excédent est ignoré.


Voilà, si vous pouviez m'aider à faire ça, ça serait sympa.
 
WRInaute passionné
j'ai fait comme ça :

Code:
//on filtre
$specialite = array_map( 'intval', $_POST['specialite'] );
//on récupère les 5 premiers choix du tableau
print_r(array_slice($specialite,0,5));

Et j'obtiens pour ces deux lignes l'erreur :

Code:
Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/site/www/modifier-page.php on line 91

Warning: array_slice() [function.array-slice]: The first argument should be an array in /home/site/www/modifier-page.php on line 93

L'idée c'est donc de récupérer les 5 premières cases cochées et les envoyer chacune dans les 5 champs de la table (ou dans 3 champs si 3 cases sont cochées).
 
WRInaute passionné
J'ai juste fait ça, après avoir coché 3 cases :
Code:
//d'abord on filtre
$_POST['specialite'] = array('premier' => 1, 'second' => 4);
if (array_key_exists('premier', $_POST['specialite'])) {
    echo "L'élément 'premier' existe dans le tableau";


Le echo s'est affiché. Mais je suis pas beaucoup plus avancé.
 
Discussions similaires
Haut