La méthode $_POST et l'espace

achou -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,

j'ai un petit problème, lorsque je fait $_POST à une chaine de caractère avec espace la de caractère sera couper.
Par exemple
x=comment ça marche;
$x=$_POST['x'];
echo"$x";
Le résultat affiché est: comment
Merci pour m'aider pour résoudre ce problème

A voir également:

1 réponse

Pitet Messages postés 2845 Statut Membre 527
 
Salut,

D'où vient le
x=comment ça marche;
sur la première ligne de ton code ?

Les espaces sont bien conservés dans les paramètres post :
<?php
if (!empty($_POST['x'])) {
 $x = $_POST['x'];
 echo $x; // affiche "Comment ça marche"
}
?>

<form method="post">
 <input type="text" name="x" value="Comment ça marche">
 <input type="submit">
</form>


Bonne journée,
0
achou
 
salut,
voila exactement mon code

<select name='x">(niveau 2)



<OPTION value=<?php echo"$x"?> > <?echo"$x"?> </OPTION>
<?php

$SQL = "SELECT n, p from em where nd = '$nom_grade' "; //$nom_grade(valeur d'une select niveau 1)
$res = mysql_query($SQL);

while($val1=mysql_fetch_array($res))
{
echo "<option>".$val1["p"]."--".$val1["n"]."</option>\n";

}

$x=$_POST['x'];

?>

</select>
lorsque je change la valeur du select niveau 1 la chaine de caractère est affiché avec l'espace ,et lorsque je change la valeur du select de niveau 3 la chaine couper dans l'espace.
0
Pitet Messages postés 2845 Statut Membre 527
 
Le problème semble venir du fait que la valeur de l'attribut value de la balise option n'est pas entourée par des guillemets :
<OPTION value="<?php echo $x; ?>"><?php echo $x; ?></OPTION> 


Le résultat attendu doit être :
<OPTION value="Comment ca marche">Comment ca marche</OPTION> 
et non
<OPTION value=Comment ca marche>Comment ca marche</OPTION> 
0
achou
 
Bonjour,
j'ai essayé avec votre solution mais le même problème.
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 758 > achou
 
Bonjour
Peux tu nous montrer ton code modifié ?
0
achou
 
voila le code modifié

<OPTION value=<?php echo $x ;?> > <?echo $x ; ?> </OPTION>
<?php

$SQL = "SELECT n, p from em where nd = '$nom_grade' "; //$nom_grade(valeur d'une select niveau 1)
$res = mysql_query($SQL);

while($val1=mysql_fetch_array($res))
{
echo "<option>".$val1["p"]."--".$val1["n"]."</option>\n";

}

$x=$_POST['x'];

?>

</select>
0