Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trop de résultats $_POST

Lors de l'envoi de mon formulaire

Sujet résolu
    19 janvier 2021 à 18:39:12

    Bonjour a tous,

    Je bâtis un formulaire en parcourant une base de données afin que certains choix soit inscrit dans une base de données utilisateurs.

    Cependant pour certaines catégories lorsque je bâtis ma liste il semble avoir trop de résultat après avoir soumis mon formulaire et le bouton SAVE n'est pas pris en compte.

    Auriez-vous une solution plus simple me permettant de réaliser ce que je désire ??

    Voici le code ou je fais mon formulaire

    <?php
       $date_jour = date("Y-m-d h:i");
       do 
       {
    	$affiche = false;
    	if ($row['date_release'] == NULL)
    	{
    	   $affiche = true;
    	}
    	else
    	{
    	   if ($row['date_release'] < $date_jour)
    	  {
    		$affiche = true;
    	  }
    	  else
    	  {
    		$affiche = false;
    				   }
    	  }
    	  if ($affiche == true)
    	  {
    ?> 
          	<tr>
            <td style="border-bottom: 1px solid black"><?php echo stripslashes($row['name']); ?></td>
            <td style="border-bottom: 1px solid black" align="center"><input type="checkbox" name="ID_<?php echo $row['ID']; ?>" id="ID_<?php echo $row['ID']; ?>"><input type="hidden" id="plId_<?php echo $row['ID']; ?>" name="plId_<?php echo $row['ID']; ?>" value="<?php echo $row['ID']; ?>"></td>
            <td style="border-bottom: 1px solid black" align="center"><input name="RANK_<?php echo $row['ID']; ?>" type="text" id="RANK_<?php echo $row['ID']; ?>" size="6" maxlength="6"></td>
          </tr>
    <?php
    	  }
       } while ($row = mysqli_fetch_assoc($dem)); 
    ?>

    Tout mes champs sont précédés d'un texte ensuite j'insère le ID unique de la liste ce qui me permet de reprendre le tout afin de voir si elle a été sélectionné ou pas.

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      19 janvier 2021 à 19:01:45

      On parle de combien ?

      A quoi tu le vois ?

      Tu dépasses vraiment max_input_vars ?

      Sûr que ça ne vient pas d'autre chose ?

      stripslashes n'est plus nécessaire depuis PHP 5.4.0 et ça aurait été plus simple de générer RANK[<?= $row['ID']; ?>] au lieu de RANK_<?php echo $row['ID']; ?>. Le champ ID_X n'est pas forcément nécessaire, à voir, ce qui permettrait de diviser par 2 le nombre de champs et clés. Ce qu'il pourrait être intéressant de faire c'est soit de procéder en deux étapes (en sélectionnant d'abord les entrées à modifier ?) sinon utiliser Javascript pour supprimer du DOM les champs de ce que l'on ne souhaite pas parce que tu envoies quand même un champ RANK_X même pour ceux que tu ne souhaites pas (pas efficace à retraiter ensuite non plus).

      > if ($affiche == true)

      == true est implicite/inutile

          $affiche = false;
          if ($row['date_release'] == NULL)
          {
             $affiche = true;
          }
          else
          {
             if ($row['date_release'] &lt; $date_jour)
            {
              $affiche = true;
            }
            else
            {
              $affiche = false;
                         }
            }
            if ($affiche == true)
      

      Se simplifierait en :

      if (is_null($row['date_release']) || $row['date_release'] &lt; $date_jour)
      

      Je ne sais pas pourquoi on trouve un do/while, il doit manquer du code.

      -
      Edité par julp 19 janvier 2021 à 19:13:30

      • Partager sur Facebook
      • Partager sur Twitter
        19 janvier 2021 à 19:36:09

        Merci pour tes pistes.

        Effectivement il manque du CODE avant la do/while, l'avoir mis il n'aurait pas été utile pour ma demande.

        Tu me parles de JAVASCRIPT et de DOM pour retirer ce dont je n'ai pas de besoin, as-tu des exemples ou ceci est utilisé ?

        Je ne suis pas très a l'aise avec JavaScript mais si ceci me sera utile alors je vais regarder avec plaisir

        • Partager sur Facebook
        • Partager sur Twitter
          19 janvier 2021 à 19:44:55

          « Tu dépasses vraiment max_input_vars ? »

          Si c'est vraiment le cas, cela veut dire que le formulaire transmet énormément de données et donc que la page contient une foule de champs.

          Il faut alors envisager une p'tit appel Ajax pour chaque modification d'un champ, c'est beaucoup plus léger. (je parle des actions mises en jeu, pas de la programmation).

          Je parle d'expérience. Il y a une quinzaine d'années, j'avais des formulaires (tarifs) qui prenaient 20 à 30 secondes pour être traités. Le jour où la techno a évolué et que j'ai pu passer à l'AJAX, ça a changé la vie des utilisateurs.

          • Partager sur Facebook
          • Partager sur Twitter
            19 janvier 2021 à 21:13:19

            Si vous avez des tutoriels a me conseiller pour faire mon formulaire avec AJAX et simplifier le tout et rendre tout ça simple je suis également preneur.
            • Partager sur Facebook
            • Partager sur Twitter
              20 janvier 2021 à 11:58:08

              Fais une petite recherche sur ce site, il y a tout ce qu'il faut !
              • Partager sur Facebook
              • Partager sur Twitter

              Trop de résultats $_POST

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown