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

1 réponse

  1. Pitet Messages postés 2845 Statut Membre 530
     
    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
    1. 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
    2. Pitet Messages postés 2845 Statut Membre 530
       
      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
    3. achou
       
      Bonjour,
      j'ai essayé avec votre solution mais le même problème.
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > achou
       
      Bonjour
      Peux tu nous montrer ton code modifié ?
      0
    5. 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