Problème d'echo php

Fermé
sansoun - 12 mai 2010 à 14:22
 sansoun - 12 mai 2010 à 20:01
J'ai un problème avec echo.Je voudrais afficher la valeur d'une variable dans une zone de texte d'un formulaire mais seulement une partie de la variable(qui est une chaine )qui s'affiche.Que faire??
Merci pour votre aide.
Voici le code:


<html>
<head> <title> Modifier livre </title> </head>

<body bgcolor=#999999 >



<?
$code=$_GET["code"];
$titre=$_GET["titre"];
$auteur=$_GET["auteur"];
$edition=$_GET["edition"];
$date_edition=$_GET["date_edition"];
$categorie=$_GET["categorie"];

?>

<form name="f" >
<table border =2 align=center >
<tr>
<td> Code Livre</td>
<td> <input type="text" name="idl" value=<? echo $code;?> /></td>
</tr>

<tr>
<td>Titre</td>
<td> <input type="text" name="titre"value=<? echo $titre; ?> /> </td>
</tr>

<tr>
<td>Auteur</td>
<td><input type="text" name="auteur" value=<? echo $auteur;?> /></td>
</tr>

<tr>
<td>Edition </td>
<td><input type="text" name="edition" value=<? echo $edition;?> /></td>
</tr>

<tr>
<td>Date Edition</td>
<td><input type="date" name="date" value=<? echo $date_edition;?> /></td>
</tr>

<tr>
<td> Catégorie</td>
<td><input type="text" name="cat" value=<? echo $categorie; ?> /></td>
</tr>

<tr> <td> </td>
<td> <input type="submit" value="Valider" /><input type="reset" value="Annuler"/> </td>
</tr>

</table>
</form>
</body>
</html>
N.B: la variable contient bel et bien la valeur désirée,elle est composée de plusieurs mots donc d'espaces.Echo ne me retourne que la première partie de la chaine(avant le 1er espace).

5 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
12 mai 2010 à 17:33
Remplace tes
value=<? echo $titre; ?>

par
value="<? echo $titre; ?>"


Pour ce qui est de passer tes valeurs d'une page à l'autre, je te suggère plutôt de faire ça plus simplement.
Exemple:
En page 1 tu fais ton tableau à partir de ta table SQL.
Exemple de lien: page2.php?id=45
45 étant l'idée récupérer de ta table SQL via une boucle.
Ainsi, en page 2, tu fais une requête pour récupérer l'ensemble des données correspondant à l'id 45 (pour cet exemple).
Inutile donc de passer toute les variables par l'url.
Si tu souhaites plus de détail pour passer les données en suivant cette méthode, hésite pas à demander.
1
Merci infiniment pour ton aide!!!
ça fonctionne convenablement merci!! :)))
Mais,j'ai un autre petit souci.
Etant une débutante en php ,je n'arrive pas à contrôler les echo c-a-d les mettre au bon endroit dans la page php. Par ailleurs, je voudrais savoir si je peux mélanger javascript et php puisque j'aimerais bien remplacer les echos qui m'agacent par des messages box.
Merci encore une fois.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
12 mai 2010 à 17:48
Le PHP restitue au navigateur du code html.

Si tu écris:
<div>
<p>Ceci est un test en <?php echo '<strong>PHP</strong>'; ?></p>
</div>

S'affichera à l'écran:
Ceci est un test en PHP

Le code PHP s'exécute et affiche le texte (via echo'';) là où il se trouve dans ton code html.

Si tu veux plus de précision vis à vis de ton problème, il me faudrait le code précis qui te pose problème.
0
Donc, il suffit juste de choisir où je veux introduire le message contenu dans l'echo et le mettre au bon endroit dans le code html sans oublier bien sûr les "<?php .... ?>"
Mais, n'il y a-t-il pas une possibilté d'afficher des messages box tout en utilisant le php??
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
12 mai 2010 à 18:03
Je dirai qu'il suffit de placer ce script dans un echo:
<script language=javascript>
alert("Ceci est un message d'alerte");
</script>
0
Bien vu!! ;)
Mais mon problème est un peu plus complexe. Apparemment, je suis fan du GET :p
donc je voudrais afficher un message que je récupère dans un header.
Voici le code qui me pose problème:

<?if (isset($_GET["msg"]))
{$msg=$_GET["msg"]
echo "<script language=javascript> alert('$msg');</script>";
}
?>
0
As-tu essayé de le faire en POST plutôt ?
0
je ne peux pas utiliser POST parce que ces données je les récupère d'une autre page php donc j'ai besoin d'utliser GET
0
Hummmmm si j'ai bien compris tu as un formulaire sur une page php dont tu envois les réponses sur une autre page php, si c'est cela la méthode POST marche parfaitement.
0
Non, c'est pas ça.
j'ai un tableau sur la page1.php avec une case contenant un lien qui m'envoie vers la page2.php.Puisque j'ai besoin des données d'une ligne du tableau j'envoie avec le lien ces données.Puis je récupère ces données dans la page2.php avec GET et je les mets comme value des input du formulaire de la page2.php
Pour etre plus claire, le code fourni ci-dessus est celui de la page2.php et voici le code de la page1.php:

<html>
<head> <title> Modifier Livre</title></head>

<body bgcolor=#999999 >
<?
if ($id= mysql_connect("localhost","root",""))
{ if ($id_db =mysql_select_db("bibliothéque"))
{ //echo "Succés de connexion";

}else {
die("Echec de connexion à la base");
}
if (isset($_GET["msg"]))
{echo $_GET["msg"];}
$requet="SELECT * FROM livre";
if($result=mysql_query($requet))
{ echo"<table border=2 align=center>";
while ($ligne=mysql_fetch_row($result))
{ echo"<tr>";
$code_livre=$ligne[0];
$titre=$ligne[1];
$auteur=$ligne[2];
$edition=$ligne[3];
$date_edition=$ligne[4];
$catergorie=$ligne[5];

echo "<td>$code_livre</td>";
echo "<td>$titre</td>";
echo" <td>$auteur</td>";
echo "<td>$edition</td>";
echo "<td>$date_edition</td>";
echo "<td>$catergorie</td>";
echo "<td><a href='page2.php ? code=$ligne[0] & titre=$ligne[1]& auteur=$ligne[2]& edition=$ligne[3]& date_edition=$ligne[4]& categorie=$ligne[5] ;'>
modifier</a></td>";
echo"</tr>";
}
echo"</table>";
}

}else {
die("Echec de connexion au serveur de base de données");
}
mysql_close($id);
?>

<br><br><br><br><br><br><br><br><br>

<a href="admin.php" > Retour à la page d'acceuil </a>
</body>
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
12 mai 2010 à 18:53
Et juste comme sa , utilisé pluto <?php a la place de <? ;)
0