Bonjour,
J’ai un petit problème en php…
J’ai un formulaire avec une liste déroulante, dans cette liste il y a un certain nombre de données, certaines composées d’un seul mot et certaines de 2 mots.
Quand j’envoie le formulaire, tout ce passe bien pour les données à un seul mot, par contre seul le premier mot des données à 2 mots est transmis.
Quelqu’un pourrait-il m’expliquer le pourquoi et comment faire pour que les 2 mots passent ?
D’avance merci.
Voici le code du formulaire :
?>
Listing |
<?
$sql = "Select * from Carnet order by Prenom";
$res=mysql_query($sql);
echo"";
while($perso=mysql_fetch_array($res))
{
$prenom=$perso[‘Prenom’];
?>
><? echo $prenom; ?>
<?
}
?>
|
Lorsque je récupère la variable $nom, il n’y a que le premier mot de la variable $prenom
Parce que ton code HTML n’est pas bon.
Je relève les erreurs suivantes:
-
<? == non portable == désactivé par défaut sur toute nouvelle installation de php == utilise <?php
- form, pas FORM. ou alors c’est <FORM et
- post, pas POST
- Pas de tableaux pour la mise en page => aberrant
- (ton vrai problème) si tu affiche un prénom comprenant des espaces, tu va envoyer au navigateur , qui lui va comprendre qu’il y a deux attributs: value, et Dupont. Tu dois donc mettre des double quotes (") : . La fonction htmlspecialchars (cf doc) sert à éviter que si tu as un " dans le prénom tu ai le même problème.
Merci pour ton aide et ta rapide réponse…
Maintenant ça marche…:):):):):):)
Juste deux détails, concernant le <?, autrefois il était conseillé de ne mettre que <? au lieu de <?php (qui fonctionnait aussi mais plus long…). Je prends donc note que maintenant ça a changé…
Concernant la mise en page… tu n’as eu qu’une partie du code… le tout est dans un tableau !!
Encore merci.