PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 01-02-2010 16:57:33

Cyrilpop
Membre
Inscription : 11-01-2010
Messages : 20

Formilaire avec nombre de champs variable

Salut à tous,


j'essaie tant bien que mal de faire un formulaire dynamique avec un nombre de champs variable.
Je m'explique, je gère plusieurs serveurs et je souhaite faire un suivi des mise à jour Windows faites dessus. Pour cela j'ai fait un formulaire qui me permet de mettre à jour la base mysql pour une muse à jour. Mais le plus souvent il y a plusieurs mises à jour par serveur. J'aimerai donc mettre un bouton qui me permet d'ajouter un champs dans mon formulaire.

En cherchant sur le net j'ai pu trouver et adapter du java script (que je ne connais absolument pas) pour mon formulaire. Mais le soucis, est que la présentation est vraiment plus que laissant à désirer : la ligne de mon tableau n'est pas droite (même en ajoutant des valign="top").

Ma question est donc est ce que quelqu'un peu m'apporter un coup de main pour corriger ce bout de code...

[code java]
<html>
<head>
<title>Document sans nom</title>
<script language="javascript">
<!--
function create_champ(i)
{
var i2 = i + 1;

document.getElementById('input_'+i).innerHTML = '<td valign="top">KB<input type="text" name="KB_'+i+'" size="8" maxlength="6"></td>';
document.getElementById('input_'+i).innerHTML += (i < 5) ? '<td><span id="input_'+i2+'"><input type="button" onClick="javascript:create_champ('+i2+')" value="+"></span></td>' : '';
}
-->
</script>
</head>
<body>


<form method="post" action="/pages/verif_ajout_update.php">
<?php
$i="1";
$db = mysql_connect('localhost', 'root', '');
mysql_select_db('windows',$db);
$sql = "SELECT NOM_SERVEUR, ID_SERVEUR FROM serveurs ORDER BY NOM_SERVEUR ASC ;";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
$nbl = mysql_num_rows($req);
?>
<table border="0" valign="top">
<tr valign="top">
    <td valign="top">
        Serveur : <SELECT name="id_serveur">
        <OPTION VALUE="">Choisissez le serveur...</OPTION>
        <?php
        while ( $data = mysql_fetch_array( $req ) )
        {
            $serveur = $data['NOM_SERVEUR'];
            $id_serveur = $data ['ID_SERVEUR'];
            ?>   
            <OPTION VALUE="<?php echo $id_serveur; ?>"><?php echo $serveur; ?></OPTION>
            <?php
        } ?>
        </SELECT>
    </td>
    <td>
         KB<INPUT value="" type="text" name="KB_1" size="8" maxlength="6">
    </td>
    <td>
        <span id="input_2">
            <input name="button" type="button" onClick="javascript:create_champ(2)" value="+">
        </span>
    </td>
    <td>
        Reboot : <INPUT type="radio" name="reboot_<?php echo $i; ?> value="oui">Oui  <INPUT type="radio" name="reboot_<?php echo $i; ?> value="non" checked>Non
    </td>
</tr>
</table>
<input type="hidden" name="nb_entrees" value="<?php echo $i;?>">
<input type="submit" value="Envoyer">
</form></body></html>
[/code]

Encore merci par avance pour votre précieuse aide smile


PS, je ne sais pas si le soucis vient du java (mais je le suspecte quand même) donc j'ai posté ici, mais si ce n'est pas le bon endroit, il ne faut pas hésiter à le déplacer wink

[Edit] Le problème de mise en page n'apparait qu'avec FF
Avec IE les lignes sont bien respectées...

Dernière modification par Cyrilpop (01-02-2010 17:15:44)

Hors ligne

#2 01-02-2010 17:35:31

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Formilaire avec nombre de champs variable

J'ai regardé mais rien ne me choque.
Peux-t-on avoir un aperçu de l'affichage ?

Hors ligne

#3 02-02-2010 09:51:50

Cyrilpop
Membre
Inscription : 11-01-2010
Messages : 20

Re : Formilaire avec nombre de champs variable

La voici copieecran.JPG
Si l'insert ne fonctionne pas voici son lien dl.free.fr : http://dl.free.fr/getfile.pl?file=/0PPWof09

Hors ligne

#4 02-02-2010 10:06:03

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Formilaire avec nombre de champs variable

En effet c'est assez funky. lol

Ah bah oui !
Tu as normalement si tu regardes le code généré un truc comme cela :

<td>
  <span id="input_2">
    <td><input ...>
      <span id="input_3">
        <td><input ...>
          <span id="input_3">...</span>
        </td>
      </span>
    </td>
  </span>
</td>

Cela choque pas ça ? ^^

Tu devrais fermer le span, fermer le TD, puis en rouvrir un et remplir avec ton nouvel élément.

Hors ligne

#5 02-02-2010 10:28:32

Cyrilpop
Membre
Inscription : 11-01-2010
Messages : 20

Re : Formilaire avec nombre de champs variable

J'avoue que là j'ai du mal, j'ai bien vu e enregistrant sou la page au format html et en regardant le code source que les span et les td étaient fermés n'importe comment, mais là j'ai du mal avec le java pour bien placer mes fins de balise, j'ai essayé de le mettre partout (avant ouverture de td) mais ca ne fonctionne pas.

J'ai bien besoin de ton oeil ecaliré smile

Hors ligne

#6 02-02-2010 10:39:43

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Formilaire avec nombre de champs variable

Bah moi je ferrai comme cela à vue de nez, mais je sais pas si ça fonctionne car je suis loin d'être initié au javascript :

var contenuSup = (i < 5) ? '<td><span id="input_'+i2+'"><input type="button" onClick="javascript:create_champ('+i2+')" value="+"></span></td>' : '';
document.getElementById('input_'+i).innerHTML = 'KB<input type="text" name="KB_'+i+'" size="8" maxlength="6"></span></td>' + contenuSup;

Hors ligne

#7 02-02-2010 10:44:26

Cyrilpop
Membre
Inscription : 11-01-2010
Messages : 20

Re : Formilaire avec nombre de champs variable

Nickel, ca marche smile

Merci bcp pour ce coup de pouce smile
Bonne journée

Hors ligne

Pied de page des forums