Dans ce code, j'ai plusieurs cases à cocher, c'est-à-dire name = "recrer_id"
avec plusieurs boutons d'envoi. Maintenant, que se passe-t-il lorsque je clique sur le bouton de soumission de la première ligne, cela alerte les données, mais lorsque je clique sur le bouton de soumission de la dernière ligne, cela indique un recruteur_id
incorrect, je ne sais pas pourquoi? Alors, comment puis-je obtenir un bouton de soumission différent de recruteur_id
en cliquant
? Aidez-moi, s'il vous plaît.
<?php foreach($wishlist as $row) { ?> <tr> <td> <input type="checkbox" name="recruiter_id" value="<?php echo $row['rid']; ?>" class="recruiter_id"> </td> <td> <input type="submit" id="<?php echo $row['job_id']; ?>" class="btn btn-danger job_id" value="Assign" /> </td> </tr> <?php } ?> <script> $(document).ready(function() { $(".job_id").click(function(e){ e.preventDefault(); job_id = this.id; recruiter_id = $("input[name='recruiter_id']:checked").val(); alert(job_id); alert(recruiter_id); }); }); </script>
3 Réponses :
essayez celui-ci,
<?php foreach($wishlist as $row) { ?> <tr> <td> <input type="checkbox" name="recruiter_id" value="<?php echo $row['rid']; ?>" class="recruiter_id"> </td> <td> <input type="submit" id="<?php echo $row['job_id']; ?>" data-val="<?php echo $row['rid']?>" class="btn btn-danger job_id" value="Assign" /> </td> </tr> <?php } ?> <script> $(document).ready(function() { $(".job_id").click(function(e){ e.preventDefault(); job_id = this.id; recruiter_id = $(this).data("val"); //$("input[name='recruiter_id']:checked").val(); alert(job_id); alert(recruiter_id); }); });
vous pouvez essayer document.getElementById ("# yourid of checkbox"). val () il vous donnera la valeur
Tout d'abord, changez le type d'entrée en bouton
au lieu de soumettre:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table border=1> <tr> <td> <input type="checkbox" name="recruiter_id" value="1" class="recruiter_id">1 </td> <td> <input type="button" id="1" class="btn btn-danger job_id" value="Assign" /> </td> </tr> <tr> <td> <input type="checkbox" name="recruiter_id" value="2" class="recruiter_id">2 </td> <td> <input type="button" id="2" class="btn btn-danger job_id" value="Assign" /> </td> </tr> <tr> <td> <input type="checkbox" name="recruiter_id" value="3" class="recruiter_id">3 </td> <td> <input type="button" id="3" class="btn btn-danger job_id" value="Assign" /> </td> </tr> </table>
Ensuite, à l'intérieur de l'événement click, montez au parent tr
et vérifiez l'ID la case à cocher associée est cochée en utilisant .closest ()
et : coché
comme:
$(document).ready(function() { $(".job_id").click(function(e) { e.preventDefault(); var job_id = this.id; var recruiter_id = $(this).closest('tr').find("input[name='recruiter_id']:checked").val(); console.log('job ID : ' + job_id + ' --- Recruiter ID:' + recruiter_id); }); });
<input type="button" id="<?php echo $row['job_id']; ?>" data-val="<?php echo $row['rid']?>" class="btn btn-danger job_id" value="Assign" />
tout d'abord, votre bouton d'envoi doit être en dehors de la boucle for. et vous pouvez
foreach ($ wishlist as $ k => $ row)
etname = "recrer_id php echo $ k;?>"
$ (" input [name ^ = 'recruteur_id']: vérifié ")
devrait faire l'affaireAccédez d'abord au
tr
parent (via.parents ()
de jQuery, puis recherchez la case à cocher à l'intérieur de celui-ci.Voulez-vous que tous les recruteurs_id vérifiés pendant que vous cliquez sur le bouton attribuer? pourquoi avez-vous plus de bouton de soumission? pouvez-vous s'il vous plaît expliquer plus dans votre question?
Monsieur, jetez un œil une fois que j'ai essayé d'expliquer plus @Nick