requete incomplete sur formulaire prérempli

Eléphanteau du PHP | 40 Messages

22 janv. 2011, 12:59

bonjour
je travaille sur une bdd ou un client crée sa fiche avec ficheclientmaj.php,
ma bdd est incrémentée normalement
ensuite, je peux la modifier via le fichier ficheclientmodif.php et c'est la que les soucis commencent :
mon formulaire devrait être prérempli , or quelques variables ne fonctionnent pas!
les variables $client['Emploi'] par exemple ne sont pas préremplis.

Si je remplis à nouveau ces variables avec les bonnes données tout fonctionne !
J'ai beau chercher, Je ne vois pas d'erreur dans mon script.
si je fais un

Code : Tout sélectionner

echo $client['Emploi']
j'ai bien la variable
mais si je fais

Code : Tout sélectionner

<select name="Emploi" id="Emploi" onchange="ValidForm()"> <option value="">Selectionnez</option> <option value="salarie"<?php if ($client['Emploi'] == "salarie") echo "SELECTED";?>>salarie</option> <option value="fonct"<?php if ($client['Emploi'] == "fonct") echo "SELECTED";?>>fonctionnaire</option> <option value="retraite"<?php if ($client['Emploi'] == "retraite") echo "SELECTED";?>>retraite</option> <option value="matern"<?php if ($client['Emploi'] == "matern") echo "SELECTED";?>>assistante maternelle</option> <option value="anpe"<?php if ($client['Emploi'] == "anpe") echo "SELECTED";?>>ANPE dispensé de recherche d'Emploi</option> <option value="congepar"<?php if ($client['Emploi'] == "congepar") echo "SELECTED";?>>conge parental</option> <option value="proflib"<?php if ($client['Emploi'] == "proflib") echo "SELECTED";?>>prof lib</option> <option value="nonsal"<?php if ($client['Emploi'] == "nonsal") echo "SELECTED";?>>non salarie</option> <option value="ces"<?php if ($client['Emploi'] == "ces") echo "SELECTED";?>>cheque emploi service</option> <option value="autre"<?php if ($client['Emploi'] == "autre") echo "SELECTED";?>>autre</option> </select>
ne présélectionne pas la variable

A noter que le même script pour $client['EmploiConjoint'] fonctionne parfaitement
Merci de votre aide

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 janv. 2011, 13:13

Quand tu affiches ta variable $client['Emploi'] as-tu bien la même chaine exactement (sans majuscules, sans espace avant ou après, ...) ?

Vérifie au niveau de ta page ficheclientmaj.php que les valeurs envoyées et enregistrées en base sont bien les mêmes que celles que tu contrôle dans ficheclientmodif.php
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 40 Messages

22 janv. 2011, 15:13

bjr
merci de ta réponse.
effectivement, tu chauffe !
si je fais

Code : Tout sélectionner

if ($client['Emploi']=="fonct") {$essai=$client['Emploi'];} else {$essai=non;} echo $client['Emploi']; echo $client['Emploi'];

Eléphanteau du PHP | 40 Messages

22 janv. 2011, 15:23

oups, fausse manip !
je reprends

si je fais un simple test

Code : Tout sélectionner

$essai=""; if ($client['Emploi']=="fonct") {$essai=$client['Emploi'];} else {$essai=non;} echo $client['Emploi']; echo $essai;
$client['Emploi'] vaut bien "fonct"
alors que $essai vaut "non" :shock:
Il ne reconnait donc pas la valeur de la variable mais je ne comprends pas pourquoi !
la variable $client['Emploi'] et $client['EmploiConjoint] ont été remplis via le même array.
$client['EmploiConjoint] fonctionne, pas $client['Emploi]
Que penser ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 janv. 2011, 19:57

Et si tu fais :
echo "-". $client['Emploi'] ."-";
Est-ce que tu vois apparaitre "-fonct-" sans espace entre les traits d'unions ?

S'il y a des espaces, tu peux les supprimer avec trim(), mais cela veut surtout dire que ces espaces sont également présent dans ta base de données, et donc à priori qu'ils étaient déjà là lors de l'insertion de ton enregistrement... Dans ce cas vérifies ton formulaire de création tu as peut être des espaces en trop... ça peut être quelque chose du genre :
 <option value="fonct ">fonctionnaire</option>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 40 Messages

24 janv. 2011, 14:58

impressionnant!!! :shock: :shock:
je cherchais depuis des semaines et là 1 post et l'erreur est trouvée!!! Bravo
C'est bien un espace qui se trouve devant la variable !!! =D> =D>
pourtant mon array

Code : Tout sélectionner

$PrintEmploi = array(" salarié," => "salarie", "fonctionnaire" => "fonct","commercial" => "commercial" , "retraité" => "retraite" ,"assistante maternelle" => "matern" , "ANPE dispensé de recherche d'emploi" => "anpe", "congé parental (avec reprise d'emploi)" => "congepar" , "profession liberale" => "proflib" , "travailleur non salarié" => "nonsal" ,"cheque emploi service" => "ces" ,"intermittant spectacle" => "spectacle","autre(sans emploi etc)" => "autre" );
n'en contient pas !!! :?:
Si tu as une idée ?
Je cherche de mon côté.
Encore merci et bravo, je ne manquerais pas de faire la promo de ton forum. =D> =D> =D> =D> =D>

Eléphanteau du PHP | 40 Messages

24 janv. 2011, 18:37

bon!
j'ai utilisé la fonction trim et ça marche, mais je ne comprends toujours pas pourquoi il y a un espace dans ma variable alors que la même réponse utilisant le même array via une autre requête donne la bonne réponse !!!
Je suis open à toute explication.
merci par avance :D