8768 sujets

Développement web côté serveur, CMS

Bonsoir,

Je ne comprends pas pourquoi, lorsque je veux afficher toutes les valeurs d'un champ, il n'y a que le premier mot qui s'affiche.
Par exemple je fais un print_r de $_POST, le champ de l'adresse ne m'affiche que la première valeur, soit le n° de la rue.

Pouvez-vous m'aider SVPL à comprendre ce que je fais de mal ?
Voici mon code :
1°) J'envoie mes données en POST depuis ma page liste_client.php vers une autre page update_client.php :

$statement = $bdd->prepare('SELECT * FROM client WHERE codeagence="' . $codeagence . '"');
          $statement->execute();
          while ($item = $statement->fetch()) {
 echo '<form method="post" action="update_client.php" role="form">';
 echo '<input id="ClientID" type="hidden" name="ClientID" value=' . $item['ClientID'] . '> ';
echo '<input id="codeagence" type="hidden" name="codeagence" value=' . $codeagence . '> ';
echo '<input id="nomagence" type="hidden" name="nomagence" value=' . $nomagence . '> ';
';
 echo '<input id="adresseclient" type="text" name="adresseclient" value=' . $item['adresseclient'] . '> ';
 echo '<textarea style="display:none" id="message" type="hidden" name="message">' . $item['message'] . ' </textarea> ';
echo '<input type="submit" name="submit1" class="btn btn-danger" value="Afficher ou modifier">';
echo '</form>';


2°) Déjà là, lorsque j'affiche mon input adresseclient en faisant type="text", ne s'affiche que le n° de la rue mais pas le nom complet.

 echo '<input id="adresseclient" type="text" name="adresseclient" value=' . $item['adresseclient'] . '> ';


3°) Et bien sûr, sur la page update_client.php mon print_r n'affiche également que le premier mot soit le n° 10 et pas l'adresse complète.
Exemple de mon print_r
Array
(
[ClientID] => 11
Smiley codeagence => MVV68700
......
Smiley adresseclient => 10

J'imagine qu'il y a un problème au niveau de ma requête SQL ?

D'avance merci de votre aide.
Cordialement +++
Modifié par Loutschi (20 Jan 2022 - 18:31)
Modérateur
Bonjour,

1) Est-ce que dans la base, l'adresse est complète ?
2) Est-ce que l'adresse contient des apostrophes ou des guillemets ?
3) Si tu fais juste un echo $item['adresseclient'], est-ce que l'adresse s'affiche entièrement ?

Amicalement,
Bojour et merci de votre réponse rapide.

1°) Oui dans la base,l'adresse est complète. Exemple :
upload/1642701558-84072-adresse.png

2°) Non aucun apostrophe ni de guillement.

3°) Alors là oui en faisant echo $item['vads_cust_address']; l'affichage est complet :
upload/1642701686-84072-adresse2.png

Le premier champ avec le chiffre 2 c'est lorsque je fais
echo '<input id="vads_cust_address" type="text" name="vads_cust_address" value=' . $item['vads_cust_address'] . '> ';

Mais pourquoi ? Smiley sweatdrop
Modérateur
Bonjour,

Il faut rajouter des guillemets (autour de $item).
echo '<input id="vads_cust_address" type="text" name="vads_cust_address" value="' . $item['vads_cust_address'] . '"> ';


Sans ces guillements, la valeur de l'attribut value est égale au premier mot qu'il trouve dans le html. Et les mots suivants sont considérés comme des noms d'autres attributs.

Amicalement,
FABULEUX !!

Même si j'aurais dû y penser (en voyant les autres données telle que name"...." ou type" ....." j'aurais mis beaucoup de temps à trouver.

Tout fonctionne, merci beaucoup de votre aide.

Belle soirée, bien amicalement ++