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 :

Array checkbox : Disabled non pris en compte ?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 36
    Points : 37
    Points
    37
    Par défaut Array checkbox : Disabled non pris en compte ?
    Bonjour à tous,

    J'affiche un formulaire contenant plusieurs checkbox, et j'ai besoin de récupérer leur valeur pour les insérer dans une base de données.

    Celles-ci étant classable en catégories distinctes, j'utilise un array pour le nom des checkbox, et je récupère via un petit script PHP.

    Seulement, quelques unes de mes checkbox doivent être obligatoirement cochées, non pas comme un formulaire ou,
    par exemple : "Choisissez vos 3 marques de voiture préférées" et ou on ne peut pas valider le formulaire si au moins 3 choix ne sont pas cochés dans la liste,
    mais obligatoirement cochées dans le sens ou quand l'utilisateur arrive sur la page, la case est pré-cochée et il ne peut pas la décocher (ne me demandez pas pourquoi je dois faire ça, c'est pour m'éviter de coder quelque chose de beaucoup plus embêtant et qui arriverait au même résultat).

    Pour réussir cela, je voudrais éviter de passer par du javascript, sauf si j'y suis vraiment obligé.

    J'ai donc opté pour une solution de type disabled="true" dans les attributs des checkbox, la grisant et nous empêchant donc de cliquer.

    Seulement...quand on fait cela, la case n'est plus prise en compte dans le array des checkbox !

    Voici un bout de code qui sera plus parlant (le code est loin d'être valide W3C, mais un simple copier-coller et il fonctionne ^^) :

    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
     
    <?php
    	// This is to collect box array value as global_variables is set off in PHP5 by default 
     
    	$box=$_POST['box'];
     
    	var_dump($box);
    	while (list ($key,$val) = @each ($box)) 
    	{ 
    		echo "$val," ; 
    	} 
     
    	echo "<form method=post action=''>" ; 
    	echo "<table border='0' cellspacing='0' style='border-collapse: collapse' width='100' > 
    			<tr bgcolor='#ffffff'> 
    				<td width='25%'><input type=checkbox name=box[] value='John' checked disabled></td> 
    				<td width='25%'>&nbsp;John</td> 
    				<td width='25%'><input type=checkbox name=box[] value='Mike'></td> 
    				<td width='25%'>&nbsp;Mike</td> 
    				<td width='25%'><input type=checkbox name=box[] value='Rone'></td> 
    				<td width='25%'>&nbsp;Rone</td> 
    			</tr> 
    			<tr bgcolor='#f1f1f1'> 
    				<td width='25%'><input type=checkbox name=box[] value='Mathew'></td> 
    				<td width='25%'>&nbsp;Mathew</td> 
    				<td width='25%'><input type=checkbox name=box[] value='Reid'></td> 
    				<td width='25%'>&nbsp;Reid</td> 
    				<td width='25%'><input type=checkbox name=box[] value='Simon'></td> 
    				<td width='25%'>&nbsp;Simon</td> 
    			</tr> 
    
    			<tr><td colspan =6 align=center><input type=submit value=Select></form></td></tr> 
    		</table>"; 
    ?>
    Comme vous pouvez le voir à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td width='25%'><input type=checkbox name=box[] value='John' checked disabled></td>
    La case est validée/grisée, mais elle n'est jamais prise en compte dans le array, car sa valeur n'est tout simplement pas envoyée, du au disabled.

    Mon problème est : Comment contourner cela ? comment rendre une case bloquée sur "cochée", sans pouvoir changer son état, et l'envoyer ?

    J'ai tenté avec "readonly", on peut modifier, et "required" ne fait rien.

    Merci d'avance pour vos réponses, et bonne soirée à tous

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    normalement readonly c'est bon, et c'est readonly="readonly"

    après le contrôle coté client c'est plus pour la deco puisque tu peux tout modifier

Discussions similaires

  1. [QR 4.05] Propriété imprimante non pris en compte
    Par portu dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 30/09/2008, 14h21
  2. CSS non pris en compte
    Par DragOr dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 08/06/2006, 13h18
  3. [ASE][SQL]WHERE non pris en compte
    Par Benjamin78 dans le forum Sybase
    Réponses: 1
    Dernier message: 24/03/2006, 12h00
  4. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57
  5. [event] keyListener non pris en compte
    Par pierre.zelb dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 03/08/2005, 08h35

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