Concaténation de variable
Résolu
mikouse
-
aruju Messages postés 2214 Date d'inscription Statut Contributeur Dernière intervention -
aruju Messages postés 2214 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Concaténation de variable
- Inverse de concatener excel ✓ - Forum Excel
- Variable d'environnement temp - Forum Word
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable objet ou variable de bloc with non définie - Forum VB / VBA
15 réponses
Bonjour,
concatènes avec un espace comme ça:
mais il faut obligatoirement mettre une value= dans la balise <option sinon pb avec certains navigateur, tu ne pourra pas récuperer la value sélectionnée alors:
attention dans value, la concatenation est faite avec un "pipe" (AltGr et touche 6) car il pourrait y avoir un espace dans le nom ou le prenom, donc pb pour récuperer
pour récuperer ensuite tu fais:
concatènes avec un espace comme ça:
while($val=mysql_fetch_array($res)) { echo "<option>".$val['nom_beneficiaire']." ".$val['prenom_beneficiaire']."</option>\n"; }
mais il faut obligatoirement mettre une value= dans la balise <option sinon pb avec certains navigateur, tu ne pourra pas récuperer la value sélectionnée alors:
while($val=mysql_fetch_array($res)) { echo "<option value=".$val['nom_beneficiaire']."|".$val['prenom_beneficiaire'].">".$val['nom_beneficiaire']." ".$val['prenom_beneficiaire']."</option>\n"; }
attention dans value, la concatenation est faite avec un "pipe" (AltGr et touche 6) car il pourrait y avoir un espace dans le nom ou le prenom, donc pb pour récuperer
pour récuperer ensuite tu fais:
$array_nom_prenom=explode("|",$_POST['nom']); $nom=$array_nom_prenom[0]; $prenom=$array_nom_prenom[1];
bonjour,
il semble que la concatenation avec un "pipe" ne marche pas avec 3 (ou plus) variables?
ou j'ai raté quelque choses?
il semble que la concatenation avec un "pipe" ne marche pas avec 3 (ou plus) variables?
echo "<option value= ".$val['nom']."|".$val['createur']."|".$val['pays'].">".$val["nom"]."</option>\n";
ou j'ai raté quelque choses?
re,
en fait le soucis réside dans le fait que s'il y a un espace dans la valeur de 2eme variable (ou 3eme, 4eme etc) les valeurs des variables qui suivent ne s'affichent pas.. comment y remédier svp?
en fait le soucis réside dans le fait que s'il y a un espace dans la valeur de 2eme variable (ou 3eme, 4eme etc) les valeurs des variables qui suivent ne s'affichent pas.. comment y remédier svp?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut alain_42,
voilà la ligne:
et cela ne marche pas s'il y a un espace :-/
voilà la ligne:
$array_nom_createur_date_sortie_licence=explode("|",$_POST['test']);
et cela ne marche pas s'il y a un espace :-/
j'ai fait ce petit bout de code, il fonctionne parfaitement même avec des espaces
<form name="essai" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <input type="text" name="test" value=""><br> <input type="submit" name="envoi" value="Tester"><br> </form> <?php if(isset($_POST['envoi'])){ $array=explode('|',$_POST['test']); echo '<pre>'; print_r($array); echo '</pre>'; } ?>
voici le mien, qui ne marche pas avec les espaces:
$mysql_link = mysql_connect($host,$login,$pass); mysql_select_db($base, $mysql_link); ?> <form action="comparer.php" method="post" > <select name="linux"> <?php $SQL = "SELECT * FROM comparer "; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value= ".$val['nom']."|".$val['createur']."|".$val['date_sortie']."|".$val['licence'].">".$val["nom"]."</option>\n"; } ?> </select> <input type="submit" value="Comparer"> </form> <?php if(isset($_POST['linux'])){ $array_nom_createur_date_sortie_licence=explode("|",$_POST['linux']); $nom=$array_nom_createur_date_sortie_licence[0]; $createur=$array_nom_createur_date_sortie_licence[1]; $date_sortie=$array_nom_createur_date_sortie_licence[2]; $licence=$array_nom_createur_date_sortie_licence[3]; } echo
Bonsoir,
même celui là chez moi fonctionne avec des espaces, j'ai un peu bidouillé pour faire sans la BDD
même celui là chez moi fonctionne avec des espaces, j'ai un peu bidouillé pour faire sans la BDD
<?php /*$mysql_link = mysql_connect($host,$login,$pass); mysql_select_db($base, $mysql_link); */ ?> <form action="comparer.php" method="post" > <select name="linux"> <?php /*$SQL = "SELECT * FROM comparer "; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value= ".$val['nom']."|".$val['createur']."|".$val['date_sortie']."|".$val['licence'].">".$val["nom"]."</option>\n"; }*/ ?> <option value= "le_nom | son_createur |12/10/2008| n° licence">nom</option>; </select> <input type="submit" value="Comparer"> </form> <?php if(isset($_POST['linux'])){ $array_nom_createur_date_sortie_licence=explode("|",$_POST['linux']); $nom=$array_nom_createur_date_sortie_licence[0]; $createur=$array_nom_createur_date_sortie_licence[1]; $date_sortie=$array_nom_createur_date_sortie_licence[2]; $licence=$array_nom_createur_date_sortie_licence[3]; echo '<pre>'; print_r($array_nom_createur_date_sortie_licence); echo '</pre>'; }
Donc le soucis je suppose vient de la recup dans la BDD
si tu fais afficher la source de ta page, est ce que tu vois bien toutes les valeurs de ta liste select correctement ,
si tu fais afficher la source de ta page, est ce que tu vois bien toutes les valeurs de ta liste select correctement ,
Bizarre
si tu fais:
ça va t'afficher tout ce qui est posté et la as tu tes chaines complètes avec les |
si tu fais:
<?php if(isset($_POST['linux'])){ echo '<pre>'; print_r($_POST); echo '</pre>'; $array_nom_createur_date_sortie_licence=explode("|",$_POST['linux']); $nom=$array_nom_createur_date_sortie_licence[0]; $createur=$array_nom_createur_date_sortie_licence[1]; $date_sortie=$array_nom_createur_date_sortie_licence[2]; $licence=$array_nom_createur_date_sortie_licence[3]; }
ça va t'afficher tout ce qui est posté et la as tu tes chaines complètes avec les |
les mots avec les espaces ne sont pas afficher, j'obtines quelque choses de style:
à la place de "Trés [linux1] =>" devrais avoir "Trés bien"
|blabla|blabla|N/a|Trés [linux1] =>
à la place de "Trés [linux1] =>" devrais avoir "Trés bien"
Pour l'espace ca marche impéccable merci beaucoup .. je test le reste et je te dis ca d'ici peu .
Merci !
while($val=mysql_fetch_array($res)) {
echo "<option value=".$val['nom_beneficiaire']."|".$val['prenom_beneficiaire'].">".$val['nom_beneficiaire']." ".$val['prenom_beneficiaire']."</option>\n";
}
$array_nom_prenom=explode("|",$_POST['nom']);
$nom=$array_nom_prenom[0];
$prenom=$array_nom_prenom[1];
Aucune erreur dans mon fichier tout se passe bien .
Ensuite dans mon fichier vers lequel je "post" , j'essai d'afficher les variables qui m'interessent ( $nom et $prenom) à l'aide d'un echo .. ca m'affiche bien le nom et prénom mais c'est parceque $nom concatennent toujours le nom et le prénom, donc il ne me les différencie toujours pas .
J'ai rajouter aussi ceci
$name=$_POST['nom'];
$surname=$_POST['prenom'];
pas plus d'effet .. ce qui n'est guere etonnant puisque $\POST['nom'] fait référence à SELECT NAME='nom'( ma liste déroulante ).
Si je n'ai pas été assez clair dans mes explications n'hésitent pas je recommencerais lol
Merci encore
$nom=$array_nom_prenom[0];
$prenom=$array_nom_prenom[1];
ces lignes il ne faut pas les mettre a la suite de ta liste dans le premier fichier mais dans le fichier appelé celui vers lequel tu postes, pour récupere les nom prenom selectionnes dans la liste avec name="nom"
et:
$name=$_POST['nom'];
$surname=$_POST['prenom'];
$_POST['nom']; c'est ce que la liste qui a comme name="nom" te poste
et $_POST['prenom']; quelle liste te le poste ? puisque prenom est dans la même liste que le nom
echo "<option value=".$val['nom_beneficiaire']."|".$val['prenom_beneficiaire'].">".$val['nom_beneficiaire']." ".$val['prenom_beneficiaire']."</option>\n";
Lorsque j'ai copier cette ligne ça a tres bien marché .. vraiment impeccable . J'ai voulu ensuite faire un espace entre ma liste déroulante avec ces valeurs et le bouton submit .
Ca n'a pas marché et ca m'affichait quelque chose dans ce style ..
liste déroulante : nom prenom </option>
Donc je me suis dis l'espace ne marche pas je vais le virer .(ps j'avais utliser )
Mais mm en le virant maintenant j'ai toujours cette affichage dans ma liste avec </option> derriere .. je suis sur de ne pas avoir touché a la ligne en question et je l'aime mm recopier par rapport à ton post .. rien n'y fait .. j'avoue ne pas comprendre.. une idée ?
As tu bien le </select> de fin de liste ,
sinon donnes moi le code complet ou la partie de code de ton formuliar equi est concernée.
@lain