[PHP] -débutant- taille de tableau HTML

Résolu
Bonjour,

Voici ma question de grand débutant :

Je cherche à créer un tableau HTML, dont je puisse entrer les dimensions (nombre de colonnes = nombre de lignes) dans un formulaire (utilisant PHP).

j'ai pour le moment créer deux expression for imbriquées pour balayer les nombres de lignes puis de colonnes... mais je m'embrouille trop entre le code HTML et le code PHP.

Merci par avance pour vos indications,
Lulea
Configuration: Windows XP
Firefox 2.0.0.2

2 réponses

  1. oui, le voilà : (mais pas mal de chose cloche je pense...)

    <html>
    <head>
    <title> Test tableau</title>
    </head>

    <body>

    <?php
    $NMAX = 10 #iniitlaisation d'une valeur

    #récuperation de la valeur
    if (isset($_POST["nombre"]));
    $NMAX = $_POST["nombre"]);
    ?>

    <form action="<?php print($_SERVER["PHP_SELF"]); ?>" method="post">
    <p>Nombre pour multiplication : <input type="int" name=""nombre" size="15" maxlength="5">
    <input type="submit" value="Valider"></p>
    </form>

    <?php #test de la valeur (entiere ?)
    if (is_numeric($_POST["nombre"]) && (intval(0 + $_POST["nombre"]) == $_POST["nombre"])) {
    echo 'Saisie correcte !';
    } else {
    echo 'Saisie incorrecte !';
    }

    #construction du tableau

    echo"<table border>";

    for($i=0;$i<$NMAX;$i++)
    { echo" <tr>";
    for($j=0;$j<$NMAX;$j++)
    { echo"<td>";
    print(i * j) ;
    echo"</td>";
    }
    echo"</tr>";
    }
    echo" </table>";
    }

    ?>
    </body>
    </html>
    1. ton code est plutot cohérent et ca doit fonctionner, lorsque tu utilise un echo pense à mettre des anti-slash devant les caractères spéciaux sinon il ne sont pas pris en compte.

      <html>
      <head>
      <title> Test tableau</title>
      </head>
      
      <body>
      
      
      <?php
      <!--tu n'est pas obligé de déclarer et initialiser les variables-->
      
      #récuperation de la valeur
      if (isset($_POST["nombre"]));
      $NMAX = $_POST["nombre"]);
      ?>
      
      <form action="<?php print($_SERVER["PHP_SELF"]); ?>" method="post">
      <p>Nombre pour multiplication : <input type="int" name=""nombre" size="15" maxlength="5">
      <input type="submit" value="Valider"></p>
      </form>
      
      <?php #test de la valeur (entiere ?)
      if (is_numeric($NMAX) && (intval(0 + $NMAX) == $NMAX)) {
      echo 'Saisie correcte !';
      } else {
      echo 'Saisie incorrecte !';
      }
      <!-- tu affecte à $NMAX la valeur $_POST['nombre'], sert t'en! cela permet d'éclaircir le code et ainsi d'offrir une meilleur compréhension-->
      
      
      #construction du tableau
      
      echo"<table border>";
      
      for($i=0;$i<$NMAX;$i++)
      { echo" <tr>";
      for($j=0;$j<$NMAX;$j++)
      { echo"<td>";
      print(i * j) ;<!--Ici tu remplie les champs, très bien ,c'est cohérent et ca doit marcher, mais que doivent t'il contenir? -->
      echo"</td>";
      }
      echo"</tr>";
      }
      echo" </table>";
      }
      
      ?>
      </body>
      </html>
    2. @naunoutile également, tu peux fermer tes script php pendant que tu écrit de l'html!!!
      c'est un peu moins jolies sur le forum, mais si tu utilise un éditeur avec des colorations (genre script édit) tu t'y retrouve bcp mieux!!!!!

      #construction du tableau
      
      echo"<table border>";
      
      for($i=0;$i<$NMAX;$i++)
      { ?> <tr><?php
      for($j=0;$j<$NMAX;$j++)
      { ?><td><?php
      print(i * j) ;<!--Ici tu remplie les champs, très bien ,c'est cohérent et ca doit marcher, mais que doivent t'il contenir? -->
      ?></td><?php
      }
      ?></tr><?php<
      }
      ?> </table><?php
      }
      ?>
      --
      <code>Practice doesn't make perfect, it makes champion!
      Si l'important n'est pas de gagner, pourquoi compte-t-on les points ?
    3. @naunoMerci beaucoup Nauno !

      Finalement, je pensais être beaucoup plus loin du but que ça ! C'est vrai que la deuxième option pour l'intégration du script php dans html est plus pratique (notepad ++).

      - En fait, le i*j, c'est simplement pour faire une table de multiplication ;-)

      malheureusement, la valeur retournée est 0 dans toutes les cellules du tableau ?!?!?

      alors je suis passée par une autre variable ($Calc = i*j;
      print($Calc) ) cela ne marche pas mieux...

      Merci en tout cas pour ton aide !
      Lulea
    4. @naunoremplace ca
      print(i * j)

      par
      $t=$i*$j;echo $t;


      on doit encore pouvoir faire mieux( affichage direct du résultat sans passer par une autre variable), mais ce n'est pas une opération gourmande, ca ne risque pas de ralentir le calcul de la page, et pi en plus ca fait au moins deux ans que j'ai pas fait de php!!! ;-p