- Statut : non résolu
- Ce sujet contient 8 réponses, 3 participants et a été mis à jour pour la dernière fois par
Cedric C., le il y a 13 années et 11 mois.
-
AuteurMessages
-
28 mai 2011 à 10 h 36 min #495600
Bonjour,
Je cherche à récupérer une variable (affichant le nom d’un article à partir d’un produit) pour l’afficher dans le contenu d’un formulaire.
J’ai donc créé mon bouton de la sorte :
<form vname="FormName" action="?page_id=572" method="post" enctype="multipart/form-data" name="form"><input type="submit" class="book" value="BOOK NOW" name="' . $product->post_title . ‘/></form>
Dans mon formulaire j’ai commencé par mettre au début de mon code :
$product_name = trim(strip_tags($_POST[‘product->post_title’]));
Puis j’ai tenté d’afficher ma variable dans le champ « commentaires » :
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField" value="<?php echo $product_name; ?>« ><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea>
Mais lorsque je teste, rien ne s’affiche dans mon formulaire.
Merci d’avance pour toute l’aide qui me sera apportée
29 mai 2011 à 5 h 37 min #773138J’avais fait quelques petites erreurs que j’ai corrigées.
D’abord l’ajout d’un » qui manquait sur mon bouton ce qui donne :
$content .= ‘<form action="?page_id=572" method="post" enctype="multipart/form-data" name="form">post_title . ‘ »/></form>‘;
D’autre part le contenu de mon textarea que j’ai changé comme suit :
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"> </textarea>
Mais toujours rien ne s’affiche.
J’ai procédé à quelques tests. Si je mets une variable dans mon bouton rien ne s’affiche; si par contre je mets un texte statique :
$content .= ‘<form action="?page_id=572" method="post" enctype="multipart/form-data" name="form"></form>‘;
Lorsque je le récupère sur ma page formulaire, le champ commentaires m’affiche « BOOK NOW ».
Et donc si je mets une variable dans mon attribut « value » mon bouton devient du grand n’importe quoi, normal.
J’avoue que je m’emmêle un peu les pinceaux et que je suis un peu perdu, pour ne pas dire complètement…
29 mai 2011 à 7 h 03 min #773139🙂 cherche des tutos sur le web pour les formulaires HTML, ils t’expliqueront tout en détail, comment récupérer les $_GET, $_POST, etc…
29 mai 2011 à 12 h 26 min #773140Salut,
Pour commencer, utilise les fonctions de WordPress pour protéger tes variables 🙂
Utilise ceci :
$product_name = esc_html($_POST[‘product->post_title’]);
Plutôt que :
$product_name = trim(strip_tags($_POST[‘product->post_title’]));
Ensuite, un input de type submit n’a pas besoin d’attribut « name ».
Puis pour terminer, mets ton texarea entre la balise
29 mai 2011 à 13 h 01 min #773141Super 69, un truc m’échappe : si je vire l’attribut name de ma balise input, comment je récupère ma variable ???
29 mai 2011 à 13 h 20 min #773142oniris wrote:Super 69, un truc m’échappe : si je vire l’attribut name de ma balise input, comment je récupère ma variable ???Ton input type submit sert uniquement à envoyer les données de ton formulaire. Ce n’est pas lui qui contient les données !
<form action="" method="post">
<textarea name="mavar"></textarea>
</form>Si tu fais ton formulaire dans ce style, il doit avoir aucun souci !
30 mai 2011 à 4 h 28 min #773143Il y du neuf !
J’ai modifié quelque peu mon formulaire. J’ai tout d’abord créé une variable pour récupérer le titre de mon post, puis je l’ai reprise dans un nouvel input que j’ai créé mais en mettant un « hidden ».
Cela donne ce code :
$product_name = « ‘ .$product->post_title . ‘ »;
$content .= ‘<form action="?page_id=572" method="post" enctype="multipart/form-data">
</form>‘;J’ai donc rappelé cette donnée dans mon formulaire de contact puis l’ai insérée dans mon champ commentaires :
$product_name = esc_html($_POST[‘product_name’]);
…
<textarea name="comments" id="commentsText" rows="20" cols="30" class="requiredField"> </textarea>
…Les … correspondant au code de tout le formulaire inutile à mettre ici.
Résultat : le titre de mon post s’affiche, mais de la sorte :
‘ .MON TITRE . ‘
Comment faire pour virer ces antislash + les ‘ ?
30 mai 2011 à 7 h 30 min #773144Il y a une raison pour mettre :
$product_name = « ‘ .$product->post_title . ‘ »;$product_name = $product->post_title; n’aurait pas suffit?
30 mai 2011 à 8 h 21 min #773145Effectivement…
Bon du coup ✅
-
AuteurMessages
- Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.