Pré-remplir des champs form

Résolu/Fermé
txiki Messages postés 3928 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 6 avril 2022 - 20 mars 2007 à 21:26
 Uzi - 1 mai 2009 à 23:24
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 dimanche 7 janvier 2007 Statut Membre Dernière intervention 15 juin 2007 44
21 mars 2007 à 10:50
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 dimanche 7 janvier 2007 Statut Membre Dernière intervention 15 juin 2007 44
22 mars 2007 à 08:26
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 mardi 14 octobre 2008 Statut Membre Dernière intervention 26 mai 2018 17
14 oct. 2008 à 20:10
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
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 3928 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 6 avril 2022 506
22 mars 2007 à 07:57
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 3928 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 6 avril 2022 506
22 mars 2007 à 11:33
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
Grand merci thomas!!
même prèsque un an après ça sert bien ;o)
1
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
27 févr. 2008 à 21:49
salut,

mets la valeur entre la balise d'ouverture et la balise de fermeture.
<textarea>blablabla</textarea>
0
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
10 sept. 2008 à 19:57
Adobe Igs graffeursalut,

si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.
0
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 sept. 2008 à 10:18
salut,

montre-nous le bout de code, stp.
0
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
11 sept. 2008 à 12:41
essaie avec :
$donnees['nouvelle'] = "\r\nblablabla\r\n";
0
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
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
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
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
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
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