Créer du code HTML dans une variable php ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Créer du code HTML dans une variable php ...

par Ryle » 23 juil. 2007, 00:31

Peut être est ce parce que tu écrases tes valeurs au lieu de les concaténés :
$strDynamicProductCode = ereg_replace('\"', '"', $_POST["txtHiddenGenerateProductCode"]);
...
$strDynamicProducts = $strDynamicProductsCode; 
Pourquoi ne pas plutôt garder les valeurs sélectionnées (et seulement elles) en session et ne générer le tableau que pour l'affichage ?

Ca sera beaucoup plus simple d'en ajouter, d'en modifier ou d'en enlever, parce que tu vas sérieusement t'amuser pour la retrouver si l'utilisateur a saisi 4 ou 5 lignes et souhaite supprimer la seconde ;)

Créer du code HTML dans une variable php ...

par Reisduif » 22 juil. 2007, 20:48

Bonjour à tous,

en fait, quand l'utilisateur sélectionne un produit, j'ai le formulaire qui est automatiquement soumis.

Donc, le but est de créer dynamiquement un tableau reprenant les caractéristiques du produit. Donc, je place le code html dans une variable php puis j'utilise l'instruction "echo" pour afficher le tableau créé. Le problème, c'est que l'utilisateur peut ajouter autant de produit qu'il veut. Donc, je concatène le contenu de mon tableau en y ajoutant un nouveau tableau et ainsi de suite.

Le problème, c'est qu'il n'ajoute apparemment pas le code à la fin de la châine de caractères.

Voici mon code :

<?
  if (isset($_POST["btnSend"]))
  {
    $intCptProducts = (int) $_POST["txtHiddenCptProducts"];
    $strDynamicProductCode = ereg_replace('\"', '"', $_POST["txtHiddenGenerateProductCode"]);
 }
  else
  {
    $intCptProducts = 0;
    $strDynamicProductsCode = "";
  }
?>

<script language="javascript">
<!--
  function ValidateForm()
  {
    document.frmState.txtHiddenCptProducts.value = <?php echo $intCptProducts; ?>;
  }
// -->
</script>

<html>
<head>
<title>Produits - formulaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="frmProduct" method="post" action="CleverForm.php" onSubmit="return ValidateForm();">
  <table width="90%" border="5" align="center" bgcolor="#CCCCCC">
    <tr>
      <td>
        <div align="center"><font face="Times New Roman, Times, serif" size="6">Aperçu des produits</font></div>
      </td>
    </tr>
  </table>
  <br>
  <table width="90%" border="0" align="center">
    <tr>
      <td>
        <p align="left">
    Produits <select name="cmbProducts" size="1" OnChange="document.frmProduct.getElementById("btnSubmit").click();">
      <option value="0" selected>Faites votre choix</option>
      <option value="1">Banane</option>
      <option value="2">Pomme</option>
      <option value="3">poire</option>
      <option value="4">Prune</option>
      <option value="5">Mandarine</option>
      <option value="6">Clémentine</option>
      <option value="7">Groseille</option>
      <option value="8">Framboise</option>
      <option value="9">Fraise</option>
      <option value="10">Ananas</option>
    </select>
    <br>
<?
    $intWhichProducts = (int) $_POST["cmbProducts"];

    if ($intWhichProducts != 0)
    {
      $intCptProducts++;

      $strDynamicProducts = $strDynamicProductsCode;

      $strDynamicProducts .= "<table width=\"90%\" border=\"1\" align=\"center\">";

      $strDynamicProducts .= "  <tr>";

      switch ($intWhichProducts)
      {
        case 1:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Banane</td>";
          break;
        case 2:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Pomme</td>";
          break;
        case 3:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Poire</td>";
          break;
        case 4:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Prune</td>";
          break;
        case 5:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Mandarine</td>";
          break;
        case 6:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Clémentine</td>";
          break;
        case 7:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Groseille</td>";
          break;
        case 8:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Framboise</td>";
          break;
        case 9:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Fraise</td>";
          break;
        case 10:
          $strDynamicProducts .= "    <td width=\"20%\">".$intCptProducts.". Ananas</td>";
          break;
      }

      $strDynamicProducts .= "    <td width=\"20%\">A. Prix</td>";
      $strDynamicProducts .= "    <td width=\"20%\">B. Quantité</td>";
      $strDynamicProducts .= "    <td width=\"20%\">C. Origine</td>";
      $strDynamicProducts .= "    <td width=\"20%\">D. Commentaire</td>";
      $strDynamicProducts .= "  </tr>";
      $strDynamicProducts .= "</table>";

      echo $strDynamicProducts ;
    }
?>

  <p align="center"> </p>
  <p align="center">&nbsp;</p>
  <p>&nbsp;</p>
      </td>
    </tr>
  </table>
  <p align="center">
    <input type="submit" name="btnSend" id="btnSubmit" value="Envoyer">
  </p>
  <input type="hidden" name="txtHiddenCptProducts">
  <input type="hidden" name="txtHiddenGenerateProductsCode" value="<? print ereg_replace('"', '\"', $strDynamicProducts ); ?>">
</form>
</body>
</html>

Merci d'avance

Thierry