Concaténation de variable
Résolu
mikouse
-
aruju Messages postés 2251 Statut Contributeur -
aruju Messages postés 2251 Statut Contributeur -
Bonjour tout le monde ,
Questions ....
observez ce code
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20'>
<?php
$sql = "SELECT * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val['nom_beneficiaire'].$val['prenom_beneficiaire']."</option>\n";
}
1. il m'affiche le résultat dans une liste déroulante mais le nom et le prénom sont collés .. j'ai essayer de mettre un espace un peu partout sur la ligne et nblsp ou jsais plus trop quoi mais rien n'y fait...
"echo "<option>".$val['nom_beneficiaire'].$val['prenom_beneficiaire']."</option>\n";" une solution ?
2.En concaténant le nom et le prénom dans une seule variable c'est bien mais le problème c'est que j'aimerais récupérer les deux dans la page suivant la validation ..
J'ai essayer avec la variable $_POST['nom_beneficiaire'] et $_POST['prenom_beneficiaire'] mais comme vous vous en doutez s ca ne marche pas ..
j'ai aussi essayer après de rajouter ces lignes " $nom=$val['nom_beneficiaire'];
$prenom=$val['prenom_beneficiaire']; "
Pour les récupérer ensuite avec la variable $_POST mais toujours pas ..
Avez vous des idées ?
Questions ....
observez ce code
<TR><TD>
Nom : <SELECT NAME='nom' size='0,20'>
<?php
$sql = "SELECT * FROM t_beneficiaire ORDER BY nom_beneficiaire" ;
$res= mysql_query($sql);
while($val=mysql_fetch_array($res)) {
echo "<option>".$val['nom_beneficiaire'].$val['prenom_beneficiaire']."</option>\n";
}
1. il m'affiche le résultat dans une liste déroulante mais le nom et le prénom sont collés .. j'ai essayer de mettre un espace un peu partout sur la ligne et nblsp ou jsais plus trop quoi mais rien n'y fait...
"echo "<option>".$val['nom_beneficiaire'].$val['prenom_beneficiaire']."</option>\n";" une solution ?
2.En concaténant le nom et le prénom dans une seule variable c'est bien mais le problème c'est que j'aimerais récupérer les deux dans la page suivant la validation ..
J'ai essayer avec la variable $_POST['nom_beneficiaire'] et $_POST['prenom_beneficiaire'] mais comme vous vous en doutez s ca ne marche pas ..
j'ai aussi essayer après de rajouter ces lignes " $nom=$val['nom_beneficiaire'];
$prenom=$val['prenom_beneficiaire']; "
Pour les récupérer ensuite avec la variable $_POST mais toujours pas ..
Avez vous des idées ?
A voir également:
- Concaténation de variable
- Inverse de concatener excel ✓ - Forum Excel
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp - Forum Microsoft Office
- Variable d'environnement temp - Forum Word
- Vba range avec variable ✓ - Forum VB / VBA
- 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