We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17057
    • 91 Posts
    Bonjour à tous,

    J’utilise le formulaire multipage posté par Tobyl => http://modxcms.com/forums/index.php/topic,8572.0.html

    Voici mon problème :

    Sur ma 1ere page, j’ai plusieurs boutons de validation dans le même formulaire.
    Dans ma 2éme page, je récupère bien la valeur du bouton qui a été cliqué :
    if(isset($_POST['var'])){
    echo $var; 
    }


    Je voudrais, maintenant pouvoir afficher cette valeur sur ma page à un endroit précis. Facile... je vais utiliser les placeholders grin
    Je rajoute donc dans mon snippet :
    if(isset($_POST['var'])){
    $modx->setPlaceholder('name', $var);
    }

    et dans mon chunk
    [+name+]


    Bon bien sur, ça ne marche pas sad, mais pourquoi ?

    En fait je n’arrive pas à comprendre ce qu’il faut faire pour déclarer un Placeholder et ensuite l’afficher.

    Si quelqu’un pouvait m’éclairer à ce sujet ?

    Merci d’avance.

    Lezebre
      • 10449
      • 956 Posts
      if(isset($_POST['var'])) {
      $modx->setPlaceholder('placeholderName', $_POST['var']);
      }
      

        • 17057
        • 91 Posts
        Merci pour ton aide ganeshXL, mais ça ne fonctionne toujours pas.
        En fait si je mets :
        if(isset($_POST['var'])) {
        $modx->setPlaceholder('placeholderName', 'ma_variable');
        }

        ma_variable ne s’affiche pas, c’est donc qu’il manque quelque chose, soit dans l’appel du snippet soit au niveau du snippet lui même ?

        Malgré les différents supports sur le sujet (forum, wiki...) je n’arrive pas à comprendre la logique huh.
          • 10449
          • 956 Posts
          hmm, essaye d’imprimer tous les vars du POST d’abord dans un snippet?

          print_r($_POST);

          Au lieu de isset() tu pourrais simplement faire if($_POST[’var’])

          L’ordre dans le template ou document est correcte? c-à-d d’abord le snippet avec setPlaceholder(), et le placeholder même après?
            • 17057
            • 91 Posts
            Au lieu de isset() tu pourrais simplement faire if($_POST[’var’])
            Pour savoir quel bouton à été validé, je dois utiliser isset() non ?

            L’ordre dans le template ou document est correcte? c-à-d d’abord le snippet avec setPlaceholder(), et le placeholder même après?
            Je ne comprend pas bien quand tu me demandes si l’ordre dans mon template est le bon ?
            Dan mon doc, je déclare :
            [!nom_de_mon_snippet!]
            

            et dans mon chunk :
             <p>blabla</p>
             <p>blabla</p>
             <p>blabla</p>
             <p>[+nom_placeholder+]</p>

            Je ne suis pas sur de répondre à ta question.
              • 17057
              • 91 Posts
              Je relance mon post, car la je sèche !!!

              Personne pour me donner un coup de pousse ?
                • 17057
                • 91 Posts
                Pour info, si je met dans mon snippet :
                if(isset($_POST['var'])){
                echo 'var';
                }

                Var s’affiche bien dans le code source de ma page.
                voir ci-dessous la capture d’écran :
                var<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml">
                <head>
                

                Donc pour placer cette valeur, il faut que j’utilise un PlaceHolder ? et là avec le code que j’ai posté, dans mon premier post, ça ne fonctionne pas.

                Bon je continue mes recherches.

                Lezebre
                  • 17057
                  • 91 Posts
                  Ouffffffffff !!! enfin résolu.

                  Voilà comment je m’y suis pris.

                  Dans mon snippet :
                  if(!isset($_POST['var1'])){}else{
                  $test='test1';
                  $_SESSION['test'] = $test;
                  }
                  if(!isset($_POST['var2'])){}else{
                  $test='test2';
                  $_SESSION['test'] = $test;
                  }
                  

                  Ensuite j’ai créé un 2éme snippet pour récupérer les valeurs dans ma 3éme page
                  $test = $_SESSION['test'];
                  return $test;
                  


                  Avec tout ce code, surement pas très catholique pour un codeur rolleyes je récupère la bonne valeur, en fonction du bouton qui est cliqué sur la 2émé page.

                  A+
                  lezebre