Récupérer une variable pour l’afficher dans un formulaire (Créer un compte)

  • Statut : non résolu
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Messages
  • #495600
    Cedric C.
    Participant
    Maître WordPress
    612 contributions

    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

    #773138
    Cedric C.
    Participant
    Maître WordPress
    612 contributions

    J’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…

    #773139
    Guy
    Participant
    Maître WordPress
    14817 contributions

    🙂 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…

    #773140
    super69
    Membre
    Chevalier WordPress
    325 contributions

    Salut,

    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

    , ça devrait déjà mieux marcher 😉
    #773141
    Cedric C.
    Participant
    Maître WordPress
    612 contributions

    Super 69, un truc m’échappe : si je vire l’attribut name de ma balise input, comment je récupère ma variable ???

    #773142
    super69
    Membre
    Chevalier WordPress
    325 contributions
    oniris 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 !

    #773143
    Cedric C.
    Participant
    Maître WordPress
    612 contributions

    Il 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 ‘ ?

    #773144
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Il y a une raison pour mettre :
    $product_name = « ‘ .$product->post_title . ‘ »;

    $product_name = $product->post_title; n’aurait pas suffit?

    #773145
    Cedric C.
    Participant
    Maître WordPress
    612 contributions

    Effectivement…

    Bon du coup ✅

9 sujets de 1 à 9 (sur un total de 9)
  • Le forum ‘Dépôts pour les extensions, trucs, astuces’ est fermé à de nouveaux sujets et réponses.