Salut tout le monde, j'ai un léger soucis, et j'ai beau réfléchir je ne trouve pas de solution:

J'ai un système de mail, avec un petit bouton "poubelle" à droite pour jeter le mail, et je fonctionne par un système de javascript, et je fonctionne par formulaire, avec un input avec l'id du mail et un button qui est la poubelle.
Mais le problème c'est que dans mon code javascript, uniquement le premier ID est récupéré, alors que je voudrais que ça récupère tous les ID, et lorsque l'un de ces ID est cliqué bah ça lance l'ajax....

Voici le code js:

$(document).ready(function() {
    $('#Mailarchiver').on('submit', function(e) {
        e.preventDefault();

        var $this = $(this);
        var id = $('#id').val();
        if(id === "") {
            alert('ID Invalide!');
        } else {
            $.ajax({
                url: $this.attr('action'), // Le nom du fichier indiqué dans le formulaire
                type: $this.attr('method'), // La méthode indiquée dans le formulaire (get ou post)
                data: $this.serialize(), // Je sérialise les données (j'envoie toutes les valeurs présentes dans le formulaire)
                success: function(html) { // Je récupère la réponse du fichier PHP
                    alert(html); // J'affiche cette réponse
                }
            });
        }
    });
});

Et ici le code HTML ^^:

                                        <form id="Mailarchiver" method="POST" action="<?= $cfg['site']['address']; ?>mail/act/<?php if($m['trash']) echo 'un'; ?>archiver">
                                            <input type="text" name="id" id="id" value="<?= $m['id']; ?>" class="hide"/>
                                            <button type="submit" class="btn btn-default no-padding" style="background:none;border:none;"><i style="color:black;" class=<?php if(!$m['trash']) echo '"fa fa-trash-o" data-toggle="tooltip" data-placement="top" title="Archiver" '; else echo '"fa fa-eye" data-toggle="tooltip" data-placement="top" title="Désarchiver" '; ?>></i></button>
                                        </form>

2 réponses


deadC3LL
Réponse acceptée

Bonjour,

La réponse est dans le titre de ton sujet : Un id est par nature unique, donc tu ne peux pas récupérer plusieurs ID qui ont le même nom, si j'ai bien compris ton problème tu devrais utiliser plutôt l'attribut class ou data pour faire une selection sur plusieurs elements.
Et pour info

<input type="hidden" ... />

sémantiquement c'est plus joli que la class hide :)

Alex
Auteur

Effectivement j'utilise les classes maintenant, effectivement merci!