Pré-remplir des champs form

Résolu
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   -  
 Uzi -
Bonsoir a tous,
J'ai fait un formulaire pour ajouter une fiche dans une table. Jusque là OK !
Maintenant, je voudrais donner la possibilité (à ceux qui auront le droit de modifier une fiche existante) d'avoir les données des champs renseignés dans la table sur le formulaire de modification.
J'ai essayé plusieurs scripts en php mais aucun n'est réaliste. Dans l'un d'eux, c'est le php qui génére le formulaire avec les datas à l'intérieur mais ce n'est pas la bonne fiche (à priori c'est toujours la derniere (dernier id).
De plus, il m'est impossible d'avoir un formulaire avec des listes déroulantes ce qui permettrait d'avoir toujours la même orthographe pour une catégorie donnée par exemple (et pas un coup, une écriture, un autre une autre écriture etc...; bref que ce soit homogène).
L'exemple est ici: http://txiki.free.fr/fiche-ajout.gif
Celui-la est OK.
Tout part d'ici en fait: http://txiki.free.fr/liste.php
Ajouter fiche: login= tintin, pass=tinotibet. (original non ?

merci pour vos réponses.

17 réponses

thomas_- Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   44
 
Bonjour,

quand la personne clique sur la fiche on va dire que ce sera par l'id, exemple : fiche_modifs.php?id=256

Ici dans ton "fiche_modif.php", tu vérifies tout d'abord que l'id soit renseignée :

<?php
if(isset($_GET["id"]))
{
$id = $_GET["id"];
// on se connecte à la bdd pour récupérer les informations de la fiche
$res = mysql_query(" SELECT * FROM `t_fiches` WHERE fiche_id = '".$id."' ");
// si un enregistrement correspond
if(@mysql_num_rows($res) > 0)
{
// c'est ok alors on récupère les infos
$titre = stripslashes($row["fiche_titre"]);
$contenu = stripslashes($row["fiche_contenu"]);
// .....
?>
<form name="blabla" action="fiche_modif.php" method="post">
<input type="hidden" name="fiche_id" value="<?=$id;?>" />
<input type="text" name="fiche_titre" value="<?=$titre;?>" />
<textarea name="fiche_contenu"><?=$contenu;?></textarea>
<!-- ........ -->
<input type="submit" value="Valider la modification" />
</form>
<?php
}
// si l'id n'est pas correcte on affiche une erreur
else echo "Désolé mais aucun enregistrement ne correspond
}
// si l'id n'est pas renseignée on affiche une erreur
else echo "Erreur, l'id n'a pas été renseignée
?>

J'espère que ça t'aidera,

Thomas
9
thomas_- Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   44
 
Bonjour,

pour tes champs de type déroulant c'est pareil, regarde :

<?php
$menuderoulant = $row["menuderoulant"];
// on se connecte à la base pour récupérer les tables qui contiennent les valeurs du menu déroulant et pour les comparer a la valeur actuelle
$res2 = mysql_query(" SELECT * FROM `t_tatable` WHERE chepakoa = 'chepakoua' ");
// si des enregistremente existent bien
if(@mysql_num_rows($res2) > 0)
{
echo '<select name="tonmenuderoulant" id="tonmenuderoulant">';
while($row2 = mysql_fetch_array($res2))
{
$valeur = $row2["valeur"];
?>
<option value="<?=$valeur;?>"<?php if($valeur == $menuderoulant") echo 'selected="selected"';?>><?=$valeur;?></option>
<?php
}
echo '</select>';
// sinon on affiche un message d'erreur

}
else echo "Désolé mais aucun enregistrement ne correspond, y'a u bleme !";
?>

Voilà, je sais pas si ça t'aidera :)

Thomas
6
Teedee Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   17
 
Un truc qui pourra peut être aider :

<textarea><?php echo 'aaa' . "\n" . 'bbb'?></textarea>

Il faut utiliser le code \n entre double quote : "\n"
Cela affichera donc :
aaa
bbb

trouvé ici : http://www.commentcamarche.net/forum/affich 8767581 petit probleme php sauter une ligne#6

dalida avec donc sans doute raison ?
2
Uzi
 
Pour les retours à la ligne automatique, utilisez la fonction nl2br() pour les retours à la ligne automatique... A placer devant votre variable champs ?...

http://www.lephpfacile.com/manuel-php/function.nl2br.php
2

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

Posez votre question
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Salut thomas et merci pour ta réponse,
Excuse moi pour ce retard mais je suis sur un autre Pb (nouvelle version de l'intranet)....
Ton idée de partir d'une fiche n'est pas bête du tout !
Si j'ai bien compris, j'affiche une fiche détaillée (laquelle contiendra un bouton "Modifier" et qui pointera vers le formulaire de modification (pré-rempli).
La question que je me pose est:
Comment conserver les champs de type "liste déroulante" ?
Mais je teste et te tiens au courant.
A + et merci pour l'idée.
1
txiki Messages postés 6596 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Oulààààààààààààà !
j'en ai un paquet de champs liste....
ça me complique la tâche.
Puis-je utiliser les names desliste déroulantes en guise de variables ?
Merci encore !
1
slashy
 
Grand merci thomas!!
même prèsque un an après ça sert bien ;o)
1
sergio
 
Bonsoir
j'ai un 1er formulaire qui comporte entre autre une zone de texte (textarea), après soumission de ce 1er formulaire, un 2ème formulaire réaffiche les éléments du 1er et vérifie si des informations obligatoires du 1er n'ont pas été omises.
Je voudrais réafficher le texte contenu dans la zone de texte du 1er formulaire.
Merci de votre aide
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

mets la valeur entre la balise d'ouverture et la balise de fermeture.
<textarea>blablabla</textarea>
0
Wam
 
Bonjour, quelques mois après cette fois-ci.

Je suis d'accord avec ça : <textarea>blablabla</textarea>
Mais si dans blablabla il y a des sauts de ligne <br/> ou \r\n, comment les transformer en réels sauts de ligne dans la textarea ????

Merci pour l'aide.
A+++
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
Adobe Igs graffeursalut,

si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.
0
Wam
 
si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.

Bonjour,
En fait j'ai le choix entre utiliser blablablabla contenant des <br/> ou blablablabla contenant des \n\r.
Mon problème est que si j'utilise l'un ou l'autre je me retrouve avec des <br/> ou des \n\r dans ma textearea.
Je voudrais de vrais sauts de ligne (visibles).

Merci de votre aide.
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

montre-nous le bout de code, stp.
0
Wam
 
Salut,

en fait c'est pour ajouter/modifier des news sur un site.
j'ai ma textarea :
<textarea>blablabla</textarea>

Soit j'utilise $nouvelle à la place de blablabla. $nouvelle est du type .............<br/>............<br/>....................
Soit j'utilise $donnees['nouvelle'] à la place de blablabla. $donnees['nouvelle'] est de type .........\n\r............\n\r.......

Moi ce que j'aimerai dans ma textearea c'est :
............
.............
...........

Voilà. J'éspère que c'est compréhensible.
Merci
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
essaie avec :
$donnees['nouvelle'] = "\r\nblablabla\r\n";
0
Wam
 
Salut Dalida, merci pour ton aide !!!

Mais je sais pas si tu as bien compris mon problème.
Je cherche à pré-remplir une zone de texte (textarea) mais je ne sais pas comment faire passer à la ligne.
Surtout j'utilise une variable pour pré-remplir cet zone de texte, alors par quoi je dois remplacer <br/> ou \n\r pour que ça me fasse les sauts de lignes.

A ce que j'ai pu comprendre, <textarea>blablabla</textarea> : le blablabla n'est pas du html (parce que quand je met des balises je les retrouve en toute lettre) ni du php.
J'ai vu aussi que quand je tape à la main le blablabla, si je vais à la ligne (dans le code) ça passe bien.

Dois-je découper ma variable qui contient blablabla et faire les sauts de ligne dans le code (trop lourd) ??
0
Teedee
 
Salut,

moi j'ai bien compris ton problème, et je rencontre le même aujourd'hui, as tu trouvé une solution ?

En gros, on veut pré remplir un input texterea avec dedans :
"coucou première ligne
deuxlième ligne"


si on met :
$textAreaValue = "coucou première ligne<br />deuxlième ligne"
ou
$textAreaValue = "coucou première ligne\ndeuxlième ligne"

Ca s'affiche : "coucou première ligne<br />deuxlième ligne" dans la page html, au lieu de
"coucou première ligne
deuxlième ligne"
attendu
0
Wam
 
Salut Teedee.

Oui j'ai résolu mon problème il y a un bout de temps.

Ma solution : passer à la ligne dans le code :
<textarea name="bla">coucou première ligne
deuxlième ligne</textarea>

J'éspère avoir été clair.

a+++
0
Teedee
 
Bah moi pour l'instant je triche car ma donnée provient d'un xml, et j'ai fait comme toi, j'ai mis le saut à la ligne en dur :

<value><![CDATA[123 bis rue Dujardin
75001 PARIS]]></value>

En lui passant ça, le textarea remet tout seul un saut de ligne, mais le problème se posera quand je devrais mettre à jour le value par javascript ou php...
Mais donc ta solution ne me convient pas :)
merci de ta réactivité cependant
0
Wam
 
Re.

Ouai j'utilise cette solution mais moi aussi je pense que c'est du "bricolage".
Si tu trouve une soluce mieux, poste la !!

a+++
0
Wam
 
Ca marche impec !!!

Ca fait plaisir de voir un vieux sujet revenir à la surface ! Et avec succès !!!

Merci à tous ! Fini le bricolage !

a+++
0