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 :

Génération de boutons radios et de champs texte


Sujet :

Langage PHP

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Génération de boutons radios et de champs texte
    Bonjour tout le monde,

    Je génère sur le clic d'un lien un bouton radio qui a l'id <gras></gras> ainsi qu'une zone de texte et ceci en PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $retour.="<td align=\"center\"><input type=\"radio\"";
    $retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" checked=\"checked\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."');$('#text_complement_info').attr('disabled', true);\"> <input type=\"text\" class=\"text_complement_info\"/></td>";
    Premier problème, le bouton radio ne s'affiche pas, voici le code généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input value="2_63_1" name="63" checked="checked" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes');$('#text_complement_info').attr(" disabled="disabled" ,="" true);="" type="radio"> <input class="text_complement_info" type="text"></td>value="2_63_1" name="63" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes')" checked="checked" /&gt;
    Je génère aussi deux autres boutons radios qui porte les id <gras>2_63_2</gras> et <gras>2_63_3</gras>.

    J'ai aussi des problèmes avec ces boutons radios, ils n'apparaissent pas, voici le code PHP :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $retour.="<td align=\"center\"><input type=\"radio\"";
    $retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" checked=\"checked\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."');$('#text_complement_info').attr(\"disabled\", false);\"> <input type=\"text\" class=\"text_complement_info\"/></td>";
    Voici le code généré :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td align="center"><input value="2_63_2" name="63" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes'); ;$('#text_complement_info').attr(" disabled="disabled" ,="" false);="" type="radio"> <input type="text"></td><td align="center"><input value="2_63_3" name="63" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes'); ;$('#text_complement_info').attr(" disabled="disabled" ,="" false);="" type="radio"> <input type="text"></td>
    Voyez-vous les erreurs de syntaxes ?

    Je vous remercie d'avance pour votre aide.

    beegees

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le code PHP que tu montres, ne donnes pas le code HTML que tu obtiens.

    Est-ce que tu as fais un minimum de debugage, par exemple en retirant ton evenement onclick ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Chacun à sa façon de coder, évidemment, mais personnellement je ferais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $retour = '<td align="center">';
    $retour = '<input type="radio" value="'.$_POST['id'].'_'.$resultat_rubriques['ID'].'_'.$resultat_gradations['Numero_gradations'].'" name="'.$resultat_rubriques['ID'].'"  checked="checked" onclick="Coter(this.value,document.getElementById(\'liste_et\').value, \''.$resultat_fieldset['Colonnes_ou_lignes'].'\');$(\'#text_complement_info\').attr(\'disabled\', true)" />';
    $retour .= '<input type="text" class="text_complement_info" />';
    $retour .= '</td>';
    Des simple quote en Php, et échappement au niveau des chaines en JS.

    Coté erreur, il manque la fermeture de parenthèse de la fonction Coter(js).
    Il manque des quotes pour le tableau $resultat_fieldset[Colonnes_ou_lignes]
    Il y a un ="" dans le HTML généré, je ne sais pas d'où il provient (le code Php me semble pas le générer).
    De même que le code généré donne ceci : <input type="text"> alors que coté Php il y a ceci : <input type=\"text\" class=\"text_complement_info\"/>


    Donc comme dit Sabotage, le code Php ne correspondrait pas au code HTML, ou inversement


    Mise à par ça, je remarque que tu utilise JQuery, du coup, pourquoi ne pas l'exploiter ?

    Un truc du genre (dans le head, et le bouton radio aurait comme ID le_id _du_radio) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(document).ready(function() {
        function Coter() {... }
     
        $('#le_id _du_radio').click(function() {
            coter($(this).val(), $('liste_et').val(), '<?php echo $resultat_fieldset['Colonnes_ou_lignes'] ?>');
            $('#text_complement_info').attr('disabled', true);
        }
    }
    Plus de prise de tête pour les échappements.
    Franchement pas essayé, c'est juste pour exemple

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Bonjour à vous deux et merci pour vos réponses.

    J'ai donc amélioré mon code :

    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
    if($points_speciaux == '2_63_1')
    									{
    										$retour.= "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."'); $('#text_complement_info').attr('disabled', true);\" ";
    									}								
    									//pour le point 2 de etudiant evalue le matire de stage, rubrique 4, bouton radio 2 et 3 rarement ou jamais
    									elseif(($points_speciaux == '2_63_2')||($points_speciaux == '2_63_3'))
    									{
    										$retour.=  "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."'); $('#text_complement_info').attr(\"disabled\", false);\"> <input type=\"text\" class=\"text_complement_info\"/>";
    									}
    									else
    									{
    										//ici, pas besoin de input text
    										$retour.= "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."')\"";
    									}
    									//suite du bouton radio et de l'input text (cela me permet de ne pas devoir taper 3 fois le même code pour la création de ces inputs)
    									$retour.= " value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" checked=\"checked\" ></td>";
    Je vérifie donc si je crée le bouton radio dont l'id vaut 2_63_1 et ensuite un elseif pour les boutons radio 2_63_2 et 2_63_3 et ensuite un else pour les autres cas.

    Cela m'affiche 3 colonnes, avec dans la première colonne un bouton radio (résultat attendu), dans la seconde, un bouton radio désactivé et la zone de texte juste en dessous et dans la 3e colonne, une bouton radio désactivé avec une zone de texte en dessous.

    Les boutons radios ne devraient pas être désactivés mais les zones de textes devraient être désactivées si le bouton radio 2_63_1 est coché.

    Voici le code généré actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <tr>
    <td>
    <a>S’est-il directement occupé de vous ?
    Si rarement ou jamais, qui s’occupait de vous ?
    </a>
    </td>
    <td align="center"><input onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes'); $('#text_complement_info').attr('disabled', true);" value="2_63_1" name="63" checked="checked" type="radio"></td><td align="center"><input value="2_63_2" name="63" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes'); ;$('#text_complement_info').attr(" disabled="disabled" ,="" false);="" type="radio"> <input type="text"></td><td align="center"><input value="2_63_3" name="63" onclick="Coter(this.value,document.getElementById('liste_et').value,'lignes'); ;$('#text_complement_info').attr(" disabled="disabled" ,="" false);="" type="radio"> <input type="text"></td></tr>
    Encore merci pour votre aide et bon long WE.

    beegees

  5. #5
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Tu oubli toujours les quotes ici : $resultat_fieldset[Colonnes_ou_lignes]
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour.= "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset["Colonnes_ou_lignes"]."'); $('#text_complement_info').attr('disabled', true);\" ";
    Je remarque toujours ceci : ="" false

    Comme je ne le vois pas du tout dans ton code, j'ai l'impresion que c'est le tableau $resultat_fieldset[Colonnes_ou_lignes] (le même qui manque les quotes d'ailleurs) qui génèrerait ce code.
    Ca va devrait provoquer une erreur pour les disabled.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Pour mon "impression", elle me parais finalement impossible.

    A mon avis, le true et false ici -> attr('disabled', true) serait généré par un code Php, non ?
    Ou alors c'est le disabled qui serait généré (et aboutir à une mauvais chaine)
    Ou alors cette partie entièrement : $('#text_complement_info').attr('disabled', true)

    Montre tu tout le code ?

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Pour mon "impression", elle me parais finalement impossible.

    A mon avis, le true et false ici -> attr('disabled', true) serait généré par un code Php, non ?
    Ou alors c'est le disabled qui serait généré (et aboutir à une mauvais chaine)
    Ou alors cette partie entièrement : $('#text_complement_info').attr('disabled', true)

    Montre tu tout le code ?
    Re,

    Merci pour ton dévouement (surtout un samedi ensoleillé).

    Voici tout le code de la page :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    <?php
    	//si je n'ai clique sur les informations des etudiants
    	if($_POST['id'] != "nom_doc" && $_POST['id'] != "infos_etudiant")
    	{
    		//fonction qui va verifier si le bouton radio doit etre coche ou pas par rapport a la presence de la cote dans la bd
    		include('../Fonctions/check_presence.php');
    		mysql_query("SET NAMES UTF8");
     
    		//affichage du fieldset et de sa legende
    		$sql_fieldset = "SELECT * FROM noms_fieldset WHERE ID = " . $_POST['id'] . " AND type_user = '".$_SESSION['Type_user']."'";
    		$query_fieldset = mysql_query($sql_fieldset);
     
    		$resultat_fieldset = mysql_fetch_array($query_fieldset);
     
    		$retour = '';
    		$retour.="Formulaire complété à :";
    		$retour.= '<div id="progress-bar"><div id="progress-bg"><span id="progress"></span></div></div>';
    		$retour.= '<br />';
     
    		$retour.= "<fieldset> <legend>".$resultat_fieldset['nom_Fieldset']."</legend>";
     
    		//les tableaux se présentent sous une forme horizontale ou verticale, je  le construis d'une façon verticale ici (l'un en dessous des autres)
    		/*
    			exemple d'un tableau vertical (lignes)
    			
    			|----------------------------------------------
    			|EXcelle | Bien | Moyen |Fabile | Insuffisant |
    			|----------------------------------------------
    			|Assuidité et Ponctualité | O | O | O | O | O |
    			|Politesse                | O | O | O | O | O |
    			|----------------------------------------------
    		*/
     
    		$sql_gradations = "SELECT * FROM gradations WHERE ID_rubrique = " . $_POST['id']. " AND type_user = '".$_SESSION['Type_user']."'";
    		//echo $sql_gradations;
    		$query_gradations = mysql_query($sql_gradations) or die(mysql_error());
     
     
    			//le point 6 est un peu spécial => Afin de mesurer l'évolution de ses compétences, avez-vous réalisé avec votre stagiare une évaluation à mi-parcours => réponses avec OUI ou NON, je crée donc le point 6 plus bas.
    			if(($_POST['id'] != 8) && ($_POST['id'] != 10))
    			{
    				if($resultat_fieldset['Colonnes_ou_lignes'] == 'lignes')
    				{	
    					//création du tableau avec une ligne et une colonne vide
    					$retour.= "<table border=1 align='center' class='tableau_principal'><tr><td></td>";
     
    					$nombre = mysql_num_rows($query_gradations);
    					$i=0;
    					//création de "Excellent", "Bien"....
    					while($resultat_gradations = mysql_fetch_array($query_gradations))
    					{
    						$retour.= "<td>".$resultat_gradations['noms_gradations']."</td>";
    						$i++;
    					}
    					//fin de création de "Excellent", "Bien".... donc ici nous avons ceci :
     
    					/*
    						|----------------------------------------------
    						| EXcelle | Bien | Moyen |Fabile | Insuffisant |
    						|----------------------------------------------
    					*/
     
    					$retour.= "</tr>";
     
    					$sql_rubriques = "SELECT * FROM noms_rubriques WHERE ID_fieldset = " . $_POST['id']. " AND type_user = '".$_SESSION['Type_user']."'";
    					//echo $sql_rubriques;
    					$query_rubriques = mysql_query($sql_rubriques) or die(mysql_error()); 
     
    					while($resultat_rubriques = mysql_fetch_array($query_rubriques))
    					{
    						$retour.= "<tr>";
    						$retour.= "<td><a>".$resultat_rubriques['nom_rubrique']."</a></td>";
     
    							//je remets la chaine sql ici afin de mettre comme valeur du bouton radio le nom de la gradation et le numéro de la rubrique
    							$sql_gradations = "SELECT * FROM gradations WHERE ID_rubrique = " . $_POST['id']." AND type_user = '".$_SESSION['Type_user']."'";
    							//echo $sql_gradations;
    							$query_gradations = mysql_query($sql_gradations) or die(mysql_error());
    							while($resultat_gradations = mysql_fetch_array($query_gradations))
    							{					
    								//pour les boutons radios, le name permet de les separer et donc de ne pas pouvoir faire plusieurs choix
     
    								/*
    									*** explicaiton de value des boutons radio "lignes" : ***
    								
    									value=\"".$_POST['id'] => l'ID du lien sur lequel on a cliqué
    									."_" => un underscore
    									.$resultat_rubriques['ID'] => Voir dans BD mysql table "noms_rubriques" => c'est l'ID du nom de la rubrique (exemple : Maîtrise des doses et posologies à l'ID 22)
    									."_" => un underscore
    									.$resultat_gradations['Numero_gradations'] => voir dans BD mysql table "gradations" => c'est l'ID de la gradation (exemple : Excellent vaut 14)
    		
    								IMPORTANT => de cette façon, je suis sur d'avoir des valeurs différentes pour chaque bouton radio
    								IMPORTANT2 => la gestion des values pour les colonnes est différente
    		
    								*/
    								//je vérifie si la reference du bouton radio est deja presente dans la bd, si c'est le cas, le bouton radio est coche, autrement il ne l'est pas
    								$deja_present = check_presence($_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations'],$_POST['matricule']);
    								$points_speciaux = $_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations'];
    								//echo '$points_speciaux vaut '. $points_speciaux.' ';
    								if($deja_present==true)
    								{
    									$retour.="<td align=\"center\"><input type=\"radio\"";
    									//si l'étudiant est clôturé ou si c'est un admin qui est sur le site, j'empêche la modification
    									if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled'";
    									if($points_speciaux == '2_63_1')
    									{
    										$retour.= "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."'); $('.text_complement_info').attr('disabled', false);\" ";
    									}								
    									//pour le point 2 de etudiant evalue le matire de stage, rubrique 4, bouton radio 2 et 3 rarement ou jamais
    									elseif(($points_speciaux == '2_63_2')||($points_speciaux == '2_63_3'))
    									{
    										$retour.=  "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."'); $('.text_complement_info').attr(\"disabled\", false);\"> <input type=\"text\" class=\"text_complement_info\"/>";
    									}
    									else
    									{
    										//ici, pas besoin de input text
    										$retour.= "onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."')\"";
    									}
    									//suite du bouton radio et de l'input text (cela me permet de ne pas devoir taper 3 fois le même code pour la création de ces inputs)
    									$retour.= " value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" checked=\"checked\" ></td>";
     
    								}
    								else
    								{
    									$retour.="<td align=\"center\"><input type=\"radio\"";
    									if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled'";
     
    									//le point 2 dans étudiants evaluent les pharmaciens dis que si on clique sur rarement ou jamais, il faut indiquer qui s'est occupe de l'etudaint, j'ajoute donc une zone d texte pour indiquer qui s'est occupe de l'etudiant.  J'ajoute alors ceci ;$('.hidden_inputs').addClass('display_inputs');\" qui affiche la zone de texte si on choisit le bouton radio
    									if(($points_speciaux == '2_63_2')||($points_speciaux == '2_63_3'))
    									{
    										$retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."'); ;$('#text_complement_info').attr(\"disabled\", false);\"> <input type=\"text\"/></td>";
    									}
    									else
    									{
    										$retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$resultat_gradations['Numero_gradations']."\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'".$resultat_fieldset[Colonnes_ou_lignes]."')\"/></td>";
    									}
     
     
    								}
    							}
     
     
    						$retour.= "</tr>";				
    					} //fin du while ==> while($resultat_rubriques = mysql_fetch_array($query_rubriques))
     
    					/*
    						à la fin du while, j'ai ceci  :
    						
    							|----------------------------------------------
    							|EXcelle | Bien | Moyen |Fabile | Insuffisant |
    							|----------------------------------------------
    							|Assuidité et Ponctualité | O | O | O | O | O |
    							|Politesse                | O | O | O | O | O |
    							|----------------------------------------------
    					
    					*/		
    				} //fin du if ==> if($resultat_fieldset['Colonnes_ou_lignes'] == 'lignes')
    				//si c'est en colonne comme le point 2, 7 et 8
    				else
    				{
    					$retour.= "<table border=1 align='center' class='tableau_principal'><tr>";
     
    					$nombre_fois = mysql_num_rows($query_gradations);
    					while($resultat = mysql_fetch_array($query_gradations))
    					{
    						$retour.= "<td>".$resultat['noms_gradations']."</td>";	
    						//je remplis un tableau avec le nom de la gradation et son numéro de rubrique afin d'avoir des noms uniques			
    					}
    					$retour.= "</tr>";
     
    					/* ici, nous avons ceci :
    						-----------------------------------------------------------------------------------------------------------
    						|Dissimulation  | Indifférence |	Désir de recommencer éventuellement la préparation et/ou la délivrance|
    						------------------------------------------------------------------------------------------------------------
    								
    					*/
     
    					echo "<tr>";
     
    					$sql_rubriques = "SELECT * FROM noms_rubriques WHERE ID_fieldset = ".$_POST['id']." AND Type_user = '".$_SESSION['Type_user']."' ORDER BY noms_rubriques.ID";
    					//echo $sql_rubriques;
    					$query_rubriques = mysql_query($sql_rubriques) or die(mysql_error()); 
     
    					$i=1;
    					while($resultat_rubriques = mysql_fetch_array($query_rubriques))
    					{
     
    								$deja_present = check_presence($_POST['id']."_".$resultat_rubriques['ID']."_".$i,$_POST['matricule']);
    								//echo $deja_present;
    								if($deja_present==true)
    								{
    										$retour.="<td align=\"center\"><input type=\"radio\" checked=\"checked\"";
    										if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled'";
    										$retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$i."\" name=\"".$_POST['id']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\"/></td>";
    								}
    								else
    								{
    									$retour.="<td align=\"center\"><input type=\"radio\"";
    									 if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled'";
    									 $retour.= "value=\"".$_POST['id']."_".$resultat_rubriques['ID']."_".$i."\" name=\"".$_POST['id']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\"/></td>";								
    								}			
     
    						$i++;
    					}
    					$retour.= "</tr>";
     
    					/*
    						 ici, nous avons ceci :
    						-----------------------------------------------------------------------------------------------------------
    						|Dissimulation  | Indifférence |	Désir de recommencer éventuellement la préparation et/ou la délivrance|
    						------------------------------------------------------------------------------------------------------------					
    						|       O       |         0    |                                 0                                        |
    						|-----------------------------------------------------------------------------------------------------------
    					*/
     
    				}
    			}//fin du if => if($_POST['id'] != 6)
    			// le point 6
    			else
    			{
    				$retour.="<table border=0 align='center' class='tableau_principal'><tr><td>OUI</td><td><input type=\"radio\" ";
    				if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled' ";
    				//bouton radio "OUI"
    				 // $parametre vaut 6_1_1 (bouton raido OUI)
    				 $parametre = $_POST['id']."_1_1";
    				 //echo '$parametre vaut '. $parametre;
    				 $deja_present = check_presence($parametre, $_POST['matricule']);
    				 if($deja_present==true)
    				 {
    					 $retour.= "value=\"".$_POST['id']."_1_1\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\" checked='checked' /></td>";
    				 }
    				else
    				{
    					 $retour.= "value=\"".$_POST['id']."_1_1\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\" /></td>";
    				}
     
    				//bouton radio "NON"
    				// $parametre vaut 6_1_2 (bouton raido NON)
    				$parametre = $_POST['id']."_1_2";
    				$deja_present = check_presence($parametre, $_POST['matricule']);
     
    				if($deja_present==true)
    				 {
     
    					 //bouton radio "NON"
    					 $retour.="<td>NON</td>";
    					 $retour.= "<input type=\"radio\"";
    					 if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled' ";			
    					 $retour.= "value=\"".$_POST['id']."_1_2"."\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\" checked='checked' /></tr>";
    				 }
    				 else
    				 {
     
    					 $retour.="<td>NON</td>";
    					 $retour.="<input type=\"radio\"";
    					 if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled' ";
    					 $retour.= "value=\"".$_POST['id']."_1_2"."\" name=\"".$resultat_rubriques['ID']."\" onclick=\"Coter(this.value,document.getElementById('liste_et').value,'colonnes')\" /></tr>";
    				 }
     
     
    				 //if((!empty($_SESSION['Type_user']) && $_SESSION['Type_user'] == 'admin') || ($_POST['etat_cloture'] == 1)) $retour.= "disabled='disabled'";
    			}
     
    			$retour.="</table>";
    			$retour.= "</fieldset>";
     
    			//suite pour le point 7 et 8 c'est a dire le textarea....
    			if(($_POST['id'] == 7) || ($_POST['id'] == 8))
    			{
    				include('../includes/point_7_pharmacien.php');
    			}
    			if($_POST['id'] == 4)
    			{
    				$retour.= '<b>« n/a » signifie « non applicable », à cocher si les activités couramment réalisées dans l\'officine ne permettent pas d\'acquérir la compétence décrite</b>';
    			}
    			if($_POST['id'] == 9)
    			{
    				include('../includes/point_9_pharmacien.php');
    			}
    			//il FAUT laisser cet echo car il affiche tout ce qui est ci-dessus
     
    		//si ce n'est pas un pharmacien, c'est un etudiant
    		}//fin du if => if($_POST['id'] != "nom_doc" && $_POST['id'] != "infos_etudiant")
    		else // ce else est combiné au if  ==> if($_POST['id'] != "nom_doc" && $_POST['id'] != "infos_etudiant")
    		{
    			if($_POST['id'] == "nom_doc")
    			{
    				include('../includes/nom_doc.php');
    			}
    			else
    			{
    				include('../includes/infos_generales.php');
    			}
    		}
    ?>
    J'ai changé le code jquery :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     // Disable #x
     $("#x").attr("disabled","disabled");
     // Enable #x
     $("#x").removeAttr("disabled");
    et non plus true et false mais toujours sans succès.

    Je continue à chercher la cause du problème.

    Encore merci.

    beegees

  8. #8
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Et bien même avec tout le code, ça crève pas des yeux

    Cepedant, les doubles quotes ici : attr(\"disabled\", false) me semble douteux.
    Remplace les par de simple quotes et sans échappement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#text_complement_info').attr('disabled', false);
    Mais comme ci-dessus tu as modifié cette partie, alors ça devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $('#text_complement_info').attr('disabled', 'disabled');
    $('#text_complement_info').removeAttr('disabled');

    Il y a une autre partie qui me semble douteuse aussi, c'est plus haut (que ci-dessus), et dans le bloc $deja_present==true
    La dernière ligne de ce bloc donne (ou fini par) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour.= " value= ... etc ...></td>";
    A mon avis, il y a un problème de concaténation si juste avant on entre dans la condition (le else if du milieu) :
    ($points_speciaux == '2_63_2')||($points_speciaux == '2_63_3')

    Cette condition génère à la fin le code HTML :<input type="text" class="text_complement_info"/>

    Donc ce code concatainé à celle juste après donnera un HTML comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... <input type="text" class="text_complement_info"/> value= ... etc ...></td>
    Ce qui théoriquement ne va pas.



    Il y a un echo "<tr>"; qui me semble douteux, ça se peut que ça devrait être

Discussions similaires

  1. [WD-2010] Boutons radio, variables et champs Word
    Par canary dans le forum VBA Word
    Réponses: 12
    Dernier message: 28/12/2012, 14h36
  2. Donner le focus a un bouton radio si focus input texte
    Par flo57570 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/09/2010, 10h51
  3. (debutant) bouton qui manipule un champs texte
    Par soiz775 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/02/2009, 17h33
  4. bouton radio et zone de texte
    Par manu80000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2007, 09h14
  5. [FLASH 8] Bouton qui rempli un champ texte
    Par touriste13 dans le forum Flash
    Réponses: 2
    Dernier message: 10/05/2006, 10h26

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