Posez votre question Signaler

Pré-remplir des champs form [Résolu]

txiki 2762Messages postés 30 janvier 2002Date d'inscription 29 mai 2012Dernière intervention - Dernière réponse le 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.
Lire la suite 

Pré-remplir des champs form »

21 réponses
Réponse
+7
moins plus
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
Ajouter un commentaire
Réponse
+4
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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 ?
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
Grand merci thomas!!
même prèsque un an après ça sert bien ;o)
Ajouter un commentaire
Réponse
+0
moins plus
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
Dalida- 27 févr. 2008 à 21:49
salut,

mets la valeur entre la balise d'ouverture et la balise de fermeture.
<textarea>blablabla</textarea>
Ajouter un commentaire
Réponse
+0
moins plus
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+++
Dalida- 10 sept. 2008 à 19:57
Adobe Igs graffeursalut,

si tu utilises PHP tu peux utiliser "\n" entre guillemets ça devrait sortir correctement.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
salut,

montre-nous le bout de code, stp.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
essaie avec :
$donnees['nouvelle'] = "\r\nblablabla\r\n";
Ajouter un commentaire
Réponse
+0
moins plus
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) ??
Teedee - 14 oct. 2008 à 15:07
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
Ajouter un commentaire
Réponse
+0
moins plus
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+++
Teedee - 14 oct. 2008 à 16:17
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
Ajouter un commentaire
Réponse
+0
moins plus
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+++
Ajouter un commentaire
Réponse
+0
moins plus
Ca marche impec !!!

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

Merci à tous ! Fini le bricolage !

a+++
Ajouter un commentaire
Ce document intitulé « Pré-remplir des champs form » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?