Bonjour,

Je récupère des information provenant d'une bdd dans un tableau et juste au dessus de celui si est placer plusieurs boutons comme "modifier" ou "supprimer". Sur chaque ligne du tableau est placer un input type radio qui a pour valeur l'id. Je souhaite que lorsque l'on clique sur le radio on ajoute sa valeur dans le lien placer plus haut.

le bouton

<a href="?action=edit&edit=id" class="btn" id="btn-edit">Editer</a>

le tableau

<table class="table table-striped" width="100%" >
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Titre</th>
                        <th>Texte</th>
                        <th>lien</th>
                        <th>Editer</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><?php echo $articles'id']; ?></td>
                        <td><?php echo $articles'title']; ?></td>
                        <td><?php echo $articles'text']; ?></td>
                        <td><?php echo $articles'slug']; ?></td>
                        <td><input type="radio" name="id" class="radio" value="<?php echo $articles'id']; ?>" ></td>
                    </tr>
                </tbody>
            </table>

JS

//J'y connais encore rien mais sa doit donner quelque chose de ce genre
    onclick('input.radio')recuperer valeur de value et la placer dans ('a#btn-edit')
    // ou
    var value = onclick(input.radio).val(); 
    $(#btn-edit).attr('href', '?action=edit&edit='.value);

5 réponses


2b3ez
Réponse acceptée

oops c'est pas un "." mais un "+" à mettre

$('.radio').click(function(){ // lors d'un click sur un élément ayant la classe radio
    var value = $(this).val(); // on stocke sa valeur
    if($(this).is(':checked')){ // si l'élément est coché on change l'attribut href par la valeur stocker
        $('#btn-edit').attr('href', '?action=edit&edit='+value);
    }else{ //sinon on vide l'attribut href
         $('#btn-edit').attr('href', '');
    }
});

Retentes avec cela si ton code html n'a pas changé of course !

peut tu développer un peu le but de ta page car j'ai l'impression que tu te complique un peu pour pas grand chose.

je verrais un système en submit post banal comme un simple formulaire sans JS, mais sans le but de ta page...

Tu veux éditer combien de ligne à la fois, et comment?

vavoir
Auteur

Je veux éditer une seul ligne c'est pour sa que c'est des radio et pas des checkbox; j’aurais utiliser un simple formulaire mais le bouton et beaucoup trop bas par rapport a la ligne. La page à plusieurs fonction mais c'est pour l'instant q'un essai avant de l'appliquer; du coup on une page qui ce charge d'afficher tout mais heureusement php nous aide à faire le tri.

A tester

$('.radio').click(function(){
    var value = $(this).val();
    if($(this).is(':checked')){
        $('#btn-edit').attr('href', '?action=edit&edit='.value);
    }else{
         $('#btn-edit').attr('href', '');
    }
});
vavoir
Auteur

@2b3ez Tester mais ne fonctionne pas aucun message d'erreur dans la console.

avec ce code pris sur la doc il m'affiche bien 1 is checked!

$( "input" ).on( "click", function() {
  $( "#log" ).html( $( "input:checked" ).val() + " is checked!" );
});