Parcourir <table>
Résolu
Arbitta
Messages postés
76
Date d'inscription
Statut
Membre
Dernière intervention
-
Arbitta Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
Arbitta Messages postés 76 Date d'inscription Statut Membre Dernière intervention -
j'ai un tableau de cette maniére :(il parcour un fichier text et affiche chaque ligne avec ls 2 check box )
lorsque je click sur le checkbox "allow" de la premiére ligne alors il m'insére la ligne et le mot "allow" dans le fichier text (fichier2.txt).
lorsque je click sur le checkbox "dntallow" de la deuxiéme ligne alors il m'insére la ligne et le mot "bntallow" dans (fichier2.txt).
Comment je peut parcourir la balise <table><tr><td>?
MErci. :)
<?php echo '<form name="f1" method="post" action="resultat.php"> echo '<table><tr> <td>LINK</td> <td>allow</td> <td>dntAllow</td> </tr>'; while (!feof($fichier)) { $cont=fgets($fichier,1024); echo '<tr> ' ; echo '<td> '.$cont.'</td>' ; echo '<td> <input type="checkbox" name="allow"> </td> '; echo '<td> <input type="checkbox" name="disallow"> </td> '; echo '</tr>'; } echo '</table>'; echo ' <input type="submit" value="send" /> ' ; echo '</form>
lorsque je click sur le checkbox "allow" de la premiére ligne alors il m'insére la ligne et le mot "allow" dans le fichier text (fichier2.txt).
lorsque je click sur le checkbox "dntallow" de la deuxiéme ligne alors il m'insére la ligne et le mot "bntallow" dans (fichier2.txt).
Comment je peut parcourir la balise <table><tr><td>?
MErci. :)
A voir également:
- Parcourir <table>
- Table ascii - Guide
- Table des matières word - Guide
- Table des caractères - Guide
- No bootable partition in table ✓ - Forum Windows
- Tableau croisé dynamique ou table de pilote - Guide
2 réponses
Bonjour
Le problème est que tu donnes le même nom allow ou disallow aux check box sur toutes les lignes de ton tableau. Si elles ont toutes le même nom, tu ne peux pas les distinguer et dans le formulaire que tu recevras, il n'y aura qu'un seul $_POST['allow'] et un seul $_POST['disallow'] - sans doute le dernier de la liste.
L'astuce est de faire name ="allow[]" pour créer un tableau. Tu récupéreras alors tous les $_POST['allow'][$i] grâce à une boucle for par exemple (ou foreach, ou while selon tes goûts).
Je ne sais pas pourquoi tu travailles avec des fichiers texte, une base de données serait normalement beaucoup plus appropriée pour faire ce genre de choses.
Le problème est que tu donnes le même nom allow ou disallow aux check box sur toutes les lignes de ton tableau. Si elles ont toutes le même nom, tu ne peux pas les distinguer et dans le formulaire que tu recevras, il n'y aura qu'un seul $_POST['allow'] et un seul $_POST['disallow'] - sans doute le dernier de la liste.
L'astuce est de faire name ="allow[]" pour créer un tableau. Tu récupéreras alors tous les $_POST['allow'][$i] grâce à une boucle for par exemple (ou foreach, ou while selon tes goûts).
Je ne sais pas pourquoi tu travailles avec des fichiers texte, une base de données serait normalement beaucoup plus appropriée pour faire ce genre de choses.
ElementW
Messages postés
4814
Date d'inscription
Statut
Contributeur
Dernière intervention
1 223
Tiens j'avais zappé ça... PHP cache tant de surprises...
'lut, avec le code actuel tu ne peux pas: toutes tes checkbox s'appellent allow et disallow, ce qui créé des collisions pour chaque ligne.
Il faut leur donner un nom différent à chacun, par ex. un nombre suffixé. Il faut aussi passer le nombre d'entrées dans un élément caché, pour que
Il faut leur donner un nom différent à chacun, par ex. un nombre suffixé. Il faut aussi passer le nombre d'entrées dans un élément caché, pour que
resultat.phpsache combien de checkboxes il doit vérifier. Aussi, tu n'es pas obligé de sortir le code HTML depuis PHP, les deux peuvent se mélanger, même au travers de boucles ou de conditions:
<form name="f1" method="post" action="resultat.php"> <table><tr> <td>LINK</td> <td>allow</td> <td>dntAllow</td> </tr> <?php $i = 0; while (!feof($fichier)) { $cont=fgets($fichier,1024); ?> <tr> <td><?php echo $cont; ?></td> <td> <input type="checkbox" name="allow<?php echo $i; ?>"> </td> <td> <input type="checkbox" name="disallow<?php echo $i; ?>"> </td> </tr> <?php ++$i; } ?> </table> <input type="hidden" name="count" value="<?php echo $i; ?>" /> <input type="submit" value="send" /> </form>
resultat.phpfera une boucle avec
$iallant de
0à
$_POST['count'], et vérifiant la valeur de
$_POST['(dis)allow'.$i], puis traitant comme tu le souhaites.