Comment ajouter des lignes avec un "bouton +"

Guill0m3
Invité n'ayant pas de compte PHPfrance

23 mai 2011, 14:42

Bonjour,

Alors voilà, je m'explique le plus clairement possible.
Je cherche comment créer un bouton qui, quand on clique dessus permettrait d'ajouter une ligne supplémentaire.

Voici mon code actuel :

<fieldset class="fieldset1">
<legend align="center">Expériences Professionnelles</legend>
<br/>
<table class="cv_center">
<tr>
<td align="center">Dates ou périodes</td>
<td align="center">Nom de l'entreprise</td>
<td align="center">Activité de l'entreprise</td>
<td align="center">Poste occupé </td>
</tr>
<?php
for($i=1 ; $i<5 ; $i++)
{
echo '<tr>
<td><input type="text" name="date_pe"></td>
<td><input type="text" name="nom_ent"></td>
<td><input type="text" name="act_ent"></td>
<td><input type="text" name="poste_occupe"></td>
</tr>';
}

?>
</table>
</fieldset>

Là par exemple, j'ai 4 lignes et je souhaiterai qu'un bouton permette simplement d'ajouter une ligne quand on clique dessus.
Si quelqu'un pouvait venir à mon secours =D

ViPHP
ViPHP | 2577 Messages

23 mai 2011, 14:50

Bonjour,

Il faudrait d'abord ajouter une balise <form>. Ensuite pour les données il faudrait ajouter [] aux noms des inputs pour distinguer les lignes avec un indice de tableau.

Un test sur une des colonnes permet de connaitre le nombre de lignes actuelles et si le bouton + a été actionné, il faut incrémenter le nombre de lignes et refaire l'affichage.

Guill0m3
Invité n'ayant pas de compte PHPfrance

23 mai 2011, 15:08

En fait, il s'agit d'un seul bout du code. Le code étant un formulaire permettant de remplir un CV.
donc la balise <form> se trouve au tout début du formulaire.
Le code complet serait-il plus pratique ? Si oui, je veux bien le poster sous peu =)

Eléphanteau du PHP | 15 Messages

26 mai 2011, 17:08

Bonjour,
tu as plusieurs façon de faire ça en voici une en php très simple:
tu crées un bouton qui pointe sur la page actuel avec en paramètre dans l'uri le nombre de lignes actuellement affiché
ensuite tu récupères la valeur et tu rajoutes 1
c'est peut être pas la solution la plus parfaite moi je ferai plus tôt ça en JS au-moins tu n'aurais pas de rechargement de la page et les données déjà enregistrées ne seraient pas perdu.
sinon pour ne pas perdre les données au rechargement il faudrait les sauvegarder sur la session par ex et les réécrire .

il faut aussi que tu rajoute les [] sur le nom des input comme l'a dit Mazarini .


<fieldset class="fieldset1">
<legend align="center">Expériences Professionnelles</legend>
<br/>
<table class="cv_center">
<tr>
<td align="center">Dates ou périodes</td>
<td align="center">Nom de l'entreprise</td>
<td align="center">Activité de l'entreprise</td>
<td align="center">Poste occupé </td>
</tr>
<?php

$nbLigne=5;
if (isset($_GET['ligne']) && $_GET['ligne']>=$nbLigne)
{
  $nbLigne=$_GET['ligne']+1;
}

for($i=1 ; $i<$nbLigne ; $i++)
{
echo '<tr>
<td><input type="text" name="date_pe[]"></td>
<td><input type="text" name="nom_ent[]"></td>
<td><input type="text" name="act_ent[]"></td>
<td><input type="text" name="poste_occupe[]"></td>
</tr>';
}

<a href="page_actuelle.php?ligne=$nbLigne">Rajouter une ligne</a>

?>
</table>
</fieldset>


Agence de communication et de formation aux outils du web marketing http://www.linesoft.fr
Plateforme d'emailing - création de newsletter - gestion de campagnes d' email marketing http://www.emailing-express10.fr
Ressources pour webmaster gratuites ,icones,fichiers vectoriels,psd ... http://www.ressource-web.fr

ViPHP
AB
ViPHP | 5818 Messages

27 mai 2011, 02:07

Tu as un exemple complet ici