Une variable pour plusieur données

Résolu
Bonjour,
J'ai un formulaire ou j'ai plusieurs champs "paragraphe" a remplir. A chaque fois les données que j'inscrit vont dans la variable "$paragraphe", ce que je voudrais c'est arriver à m'y retrouver dans ces données, via un tableau ou autre, et par la suite l'insérer dans un paragraphe
Cdt,

9 réponses

  1. oui ou en metant en plus le même index dans le name=xxxxx[numParagraphe] de liste et textarea

    c'est plus facile ensuite d'assurer la correspondance entre le type et le contenu texarea
    <?php
    if(isset($_POST['Nouv_Para']))//Si on appuie sur le bouton Nouv_para
    {
    $nbParagraphe = $_POST['nb_para'] +1;
    $numParagraphe=1;
    for($i = 1; $i <= $nbParagraphe ; $i++)
    { 
    	echo '<br><label class="margeG" for="para"> Type Paragraphe : </label>
    	<select name="liste_type1['.$numParagraphe.']">
    	<option value="texte"> Texte </option>
    	<option value="lien"> Lien </option>
    	<option value="image"> Image </option>
    	<option value="media"> Média </option>
    	</select><br/>
    	<br/>
    	<label class="margeG"> Paragraphe '.$numParagraphe.' : </label>
    	<textarea name="paragraphe['.$numParagraphe.']" rows="8" cols="45" >'.$paragraphe.'</textarea>'.'<br>';
    
    $numParagraphe++;
    }
    echo '<input type="hidden" name="nb_para" value="'.$nbParagraphe.'">';
    }
    else
    {
    echo '<input type="hidden" name="nb_para" value="">';
    }
    
    //et pour récupérer:
    
    for($i=1;$i<=sizeof($_POST['liste_type1']);$i++){
    
    	echo 'Paragraphe n°'.$i.'<br />';
    	echo 'Type: '.$_POST['liste_type1'][$i].'<br />';
    	echo nl2br($_POST['paragraphe'][$i];
    }
    ?>
    2
    1. Salut !

      Il faut également que tu récupère ton sélect comme tes textarea :
      <select name="liste_type[]">

      En post, tu vas alors recevoir deux tableaux : Celui de tes sélect et celui de tes textarea.
      Donc par exemple, $_POST['liste_type'][1] correspond au select du paragraphe $_POST['paragraphe'][1]

      Pour récuper toutes tes valeurs (select et paragraphe), un tu suffis d'une boucle avec un i qui s'incrémente et dans chaque tour de boucle tu ira cherché $_POST['liste_type'][$i] et $_POST['paragraphe'][$i]

      1
      1. J'ai pas tout compris...

        En gros tu as un formulaire avec plusieurs champs et tu arrives pas à récupérer chaque champ dans une variable différente, c'est ça ?
        0
        1. Merci de ta réponse
          En faite j'ai un formulaire, où à chaque fois je rajoute autant de paragraphe que je veux, et à chaque fois les données de N paragraphe se trouverons dans la variables $paragraphes.

          <?php
          if(isset($_POST['Nouv_Para']))//Si on appuie sur le bouton Nouv_para
          {
          $nbParagraphe = $_POST['nb_para'] +1;
          for($i = 1; $i <= $nbParagraphe ; $i++)
          { $numParagraphe++;
          echo '<br><label class="margeG" for="para"> Type Paragraphe : </label>
          <select name="liste_type1">
          <option value="texte"> Texte </option>
          <option value="lien"> Lien </option>
          <option value="image"> Image </option>
          <option value="media"> Média </option>
          </select><br/>
          <br/>
          <label class="margeG"> Paragraphe '.$numParagraphe.' : </label>
          <textarea name="paragraphe[]" rows="8" cols="45" >'.$paragraphe.'</textarea>'.'<br>';
          }
          echo '<input type="hidden" name="nb_para" value="'.$nbParagraphe.'">';
          }
          else
          {
          echo '<input type="hidden" name="nb_para" value="">';
          }
          ?>

          Ce que je voudrais c'est pouvoir traiter chaque données de chaque paragraphe.
          0
          1. Un grand merci Alan ! Tu m'as bien aider
            Mais c'est que je voudrais c'est pouvoir récupérer le contenu de chaque paragraphe afin de pouvoir les intégrer dans ma base de données dans mon champs 'contenu' , dans ma base là, on voit "array" dans le contenu quand j'essaye de les intégrer.
            Cdt,
            0
            1. Contributeur
              Tu obtiens un tableau avec chacun de tes paragraphes, à toi de les traiter après, le plus simple c'est de faire une boucle sur ton tableau.
              0
              1. C'est pas vraiment ce que je voulais faire,
                Voici mon code :

                Haut de page :

                if(isset($_POST['valider']) OR isset($_POST['Nouv_Para']))
                { //On récupère les données rentrer dans les champs

                $nbParagraphe=$_POST['nb_para'];
                $contenuParagraphe1=$_POST['contenuParagraphe1']

                }

                Plus bas :

                for($numParagraphe = 1; $i <= $nbParagraphe ; $numParagraphe++)
                {
                echo
                '<label class="margeG"> Paragraphe '.$numParagraphe.' : </label>
                <textarea name="contenuParagraphe'.$numParagraphe.'" rows="8" cols="45" > '.$contenuParagraphe1.' </textarea>'.'<br>';

                $numParagraphe++;
                }
                echo '<input type="hidden" name="nb_para" value="'.$nbParagraphe.'">';
                }
                else
                {
                echo '<input type="hidden" name="nb_para" value="">';
                }
                Ce que je voudrais c'est que dans mon textarea, ma boucle créer une variables qui se concatène avec le num du paragraphe.
                Que ma boucle créer des variables avec le contenu : $contenuParagraphe2,$contenuParagraphe3, etc .. autant de fois que j'aurais créer de paragraphe.
                Cdt
                0
                1. ma boucle créer une variables qui se concatène avec le num du paragraphe
                  c'est tout à fait possible, mais pourquoi n'utilises tu pas la solution proposée par jeremy.s ou moi-même avec les array en en mettant comme name = xxxx[] ce qui est beaucoup plus simple.

                  fais au moins l'essai
                  0
                  1. D'autant plus que c'est plus propre et très correct de faire ca, donc même avis qu'Alain !
                    0