prb de syntaxe de PHP / HTML.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : prb de syntaxe de PHP / HTML.

par sadeq » 03 sept. 2008, 14:25

T'as pas besoin de remplacer les espaces par %20 au niveau de la liste. Ce n'est pas nécessaire ni judicieux. Il faut savoir que le navigateur va transformer automatiquement les espace quand la valeur de l'option est envoyée par un formulaire.

Mais ton problème est que tu n'encadre pas la chaine dans la clause VALUE de l'option par des guillemets. Normalement il faut le faire car si la valeur contient des espace, cette dernière sera tronquée à l'envoi en l'absence des délimiteurs guillemets "".

Correction:
echo '<option value="'.$row_ListeDeroulante2["$Nomcolonne"].'">'.$row_ListeDeroulante2["$Nomcolonne"].'</option>'; 

par DBU » 03 sept. 2008, 13:02

Mon probléme est le suivant : dans ma liste déroulante dont les valeurs viennent de la base. j'ai des valeur qui comporte des espaces.

avec les valeurs sans espace je n'ai pas de probleme.par contre la valeur est tronqué au niveau de l'espace. et je souhaite envoyer la valeur en remplacent l'espace par %20.

mais avec le cot et guillement et autre caractére de la ligne de commande je m'en sors pas.

Merci pour ton info, j'ai aussi un pb de syntaxe avec

et je vais me répondre à moi même cela pourra servir à d'autre.

Il me suffissait de faire le remplacement dans la valeur du select et laisser l'affichage comme cela...
      echo '<option value='.str_replace(" " ,"%20",$row_ListeDeroulante2["$Nomcolonne"]).'>'.$row_ListeDeroulante2["$Nomcolonne"].'</option>';

par B.Moncef » 03 sept. 2008, 12:11

Je ne suis pas sûr d'avoir bien compris ton problème... Mais je crois que urlencode() pourrait être la fonction que tu cherches.

prb de syntaxe de PHP / HTML.

par DBU » 03 sept. 2008, 11:36

Bonjour,


j'utilise une liste déroulante dans laquelle je récupère des données que je passe en argument dans le navigateur.
Mon problème est que certaine de ces valeurs contiennent des espaces.
Espace que je voudrais avant l'envois convertir comme il se doit en %20.

j'utilise la fonction str_replace(" " ,"%20",...)

mon problème c'est que je n'arrive pas à écrire la ligne de commande.

la ligne en question :
echo '<select size="1" name='.$NomChampList.' class='.$Styletexte.' onchange="window.location.href=\'index.php?'.$CdeArgument.'=\' + this.options[this.selectedIndex].value">';

function ListeDeroulante($NomChampList, $NomTable, $Nomcolonne,$Styletexte,$CdeArgument, $ValDefaut )
{
   // Ouverture de la connexion
   include ('misc.inc');
   //  global  $connexion, $selectdb;
   $connexion = mysql_connect ($host,$user,$password) or die ("Connexion au SERVEUR Impossible...");
   $selectdb_ListeDeroulante = mysql_select_db($bdd) or die ("La base de donnée ne peut être selectionnée...");
   $Sql_ListeDeroulante = 'SELECT DISTINCT `'.$Nomcolonne.'` FROM `'.$NomTable.'` order by `'.$Nomcolonne.'` asc';
   $req_ListeDeroulante = mysql_query($Sql_ListeDeroulante)or die('Erreur SQL !<br>'.$Sql_ListeDeroulante.'<br>'.mysql_error());
  
   echo '<select size="1" name='.$NomChampList.' class='.$Styletexte.'  onchange="window.location.href=\'index.php?'.$CdeArgument.'=\' + this.options[this.selectedIndex].value">';
   echo '<option selected value="'.$ValDefaut.'">'.$ValDefaut.'</option>';
   echo '<option value="*">*</option>';
   while ($row_ListeDeroulante2 = mysql_fetch_assoc($req_ListeDeroulante)) {
      echo '<option value='.$row_ListeDeroulante2["$Nomcolonne"].'>'.$row_ListeDeroulante2["$Nomcolonne"].'</option>';
   }
   echo '</select>';
// Fermeture de la connexion
   mysql_free_result($req_ListeDeroulante);
   mysql_close($connexion);
}


?>

Merci d'avance.

Bruno