champ input dans un formulaire constitué par un tableau

Petit nouveau ! | 3 Messages

08 août 2005, 17:49

Bonjour,

J'ai un souci de présentation dans un tableau. C'est un formulaire de saisie qui contient un tableau de 5 lignes de 2 cellules. La 5 ème ligne contient : nbre de personnes : 2
Le chiffre en vert est déclaré <td><input name='nbperson' value='2'>

A l'affichage la hauteur est multipliée par 3 comme si il y avait 3 lignes avec cadrage milieu dans la 1 ère cellule et cadrage haut dans la 2 ème.

Voici le code complet du tableau :
echo "<form action=page8.php method='post' name='saisie'>\n";
         echo "<input type=hidden name='modif' value='modif'>\n";
         echo "<table border='1' rules='all' align='center'>";
         echo "<tr><td>" . PAGE8_L3 . "<td>" . $titre  . "\n";
         echo "<tr><td>" . PAGE8_L4 . "<td>" . $nom    . "\n";
         echo "<tr><td>" . PAGE8_L5 . "<td>" . $prenom . "\n";
         echo "<tr><td>" . PAGE8_L6 . "<td>" . "<select name='presence' size=1>\n";
              echo "<option value=1>" . PAGE8_L7 . "</option>";
              echo "<option value=2>" . PAGE8_L8 . "</option></select>\n";
         echo  "<tr><td>Nb personnes : <td><input name='nbperson' value='2'>\n";   
         echo "<input type=hidden name='nomr' value='$nom'>\n";
         echo "<input type=hidden name='id' value='$id'>\n";
         echo "<input type=hidden name='titrer' value='$titre'>\n";
         echo "<input type=hidden name='langue' value='" . $langue . "'>\n";
         echo "<br><br>\n"; 
         echo "<tr><td colspan=2><input type=button value='" . PAGE8_L10 ."' onClick='ctrlSaisie(document.saisie.langue.value)'>\n";
    echo "</table></form>\n";     



Merci de votre aide et avant de me massacrer je voudrais vous dire que je suis autodidacte, j'ai des lacunes mais avant de poster, je cherche.

Mammouth du PHP | 19672 Messages

08 août 2005, 17:53

Modération : zebulon, voudrais-tu faire un petit tour dans les règles du forum et t'attarder en particulier sur la première ligne de l'article 3. reviens ensuite éditer ton message s'il te plait et procéder aux corrections nécessaires.

Merci
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

08 août 2005, 18:16

Oui je suis allé sur le règlement qui dit : 'faire un message clair et concis'.
Si je n'y suis pas arrivé je suis désolé, ou alors c'est parce que j'ai pas dit que c'est php ? Dis moi ce que tu me reproches, sinon n'en parlons plus.

Mammouth du PHP | 19672 Messages

08 août 2005, 18:31

Mouais, bon, j'ai édité et corrigé moi même, les boutons [php] ou [code] sont fait spécialement pour ça.

Ensuite ton code n'est qu'une erreur d'un bout à l'autre : tu n'as pas fermée une seule balise <td> ni une <tr>. Proposition de correction :
<form action="page8.php" method='post' name='saisie'>
  <input type=hidden name='modif' value='modif'>
  <table border='1' rules='all' align='center'>
    <tr>
      <td> <?php echo(PAGE8_L3); ?> </td>
      <td> <?php echo($titre); ?> </td>
    </tr>
    <tr>
      <td> <?php echo(PAGE8_L4); ?> </td>
      <td> <?php echo($nom); ?> </td>
    </tr>
    <tr>
      <td> <?php echo(PAGE8_L5); ?> </td>
      <td> <?php echo($prenom); ?> </td>
    </tr>
    <tr>
      <td> <?php echo(PAGE8_L6); ?> </td>
      <td>
        <select name='presence' size=1>
          <option value=1> <?php echo(PAGE8_L7); ?> </option>
          <option value=2> <?php echo(PAGE8_L8); ?> </option>
        </select>
      </td>
    </tr>
    <tr>
      <td>Nb personnes : </td>
      <td><input name='nbperson' value='2'> 
        <input type=hidden name='nomr' value='<?php echo($nom); ?>'>
        <input type=hidden name='id' value='<?php echo($id); ?>'>
        <input type=hidden name='titrer' value='<?php echo($titre); ?>'>
        <input type=hidden name='langue' value=' <?php echo($langue); ?>'>
        <br><br>
      </td>
    </tr>
    <tr>
      <td colspan=2>
        <input type=button value=' <?php echo(PAGE8_L10); ?>' onClick='ctrlSaisie(document.saisie.langue.value)'>
      </td>
    </tr>
  </table>
</form>
Et tu noteras que je sépare le HTML du PHP. Il est en effet inutile de faire interpréter le HTML par PHP, ça nuit aux preformances de l'application.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 3 Messages

09 août 2005, 07:20

Bonjour,

Merci pour t'être penché sur mon code. Je suis d'accord quand tu dis que mes balises pas fermées c'est pas correct, mais j'ai vu des exemples comme ça dans des bouquins, alors j'ai fait pareil. Ensuite n'utiliser le PHP que quand c'est nécessaire : là, c'était obligé car la code que j'ai montré se trouve dans un if. En fin de compte l'erreur de présentation vient du fait que vers la fin j'ai fait 2 balises <br> qui ont fait que la ligne du tableau se présentait sur 3 lignes. En enlevant ces 2 balises c'est ok :P . En fait je voulais séparer la dernière ligne des précédentes, j'aurai du faire une ligne vide.

Encore merci, je ne sais pas comment on fait pour mettre 'résolu' sur la liste des sujets.

Mammouth du PHP | 19672 Messages

09 août 2005, 10:15

Même si ton code html est dans un if, tu peux fermer temporairement la balise php et l'ouvrir après le code html, exemple :
<?php
if($condition == $valeur)
{
?>
<form action="<?php echo($SERVER['PHP_SELF']); ?>" method="post">
  <input type="text" name="nom" value="" />
  <input type="submit" name="envoi" value="Envoyer" />
</form>
<?php
}
else
{
    //etc.....
}
?>
De cette manière, PHP détecte immédiatement ce qui est du HTML et l'envoie directement sans l'interpréter au navigateur et dès qu'il rencontre une pbalise PHP, il interprète le contenu: tu vas de toutes façons gagner en performances de cette manière.

Pour le [Résolu], tu as un bouton en haut de la page du ton message.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: