Maison  >  Questions et réponses  >  le corps du texte

Comment obtenir l'identifiant de toutes les données de cases cochées à partir de datatable dans php jquery

<p>J'utilise des cases à cocher dans toutes les lignes afin que lorsque chaque case est cochée, j'obtienne leur identifiant, tout fonctionne bien avec ce que j'ai implémenté, mais le problème est que je n'obtiens que la page du tableau de données d'ID vérifié spécifique. Cela signifie que si je coche la case pour une donnée de la page 1 et que je coche également la case pour d'autres données de la page 2, lorsque je soumets, je n'obtiens que les données de la page 2. Ce que je veux, c'est que j'obtienne les données avec les identifiants de la page 1, de la page 2, de la page 3, etc. </p> <p>C'est de là que viennent toutes mes données</p> <pre class="brush:php;toolbar:false;">@foreach($data as $key => $question_bank) <tr id="{{ $question_bank->id }}"> <td> <input type="checkbox" data-id="{{ $question_bank->id }}" class="add_check"> </td> <td>{{++$i}}</td> <td>{{ $question_bank->questionCategory->category }}</td> <td>{{$question_bank->question}}</td> ≪/tr> @endforeach <type de bouton="soumettre" id="add_to" class="mt-3 btn btn-primary float-right">Ajouter</bouton></pre> <p>Voici ma partie jquery</p> <pre class="brush:php;toolbar:false;">$(document).on('click','#add_to',function(e){ e.preventDefault(); var questionids_arr = []; $("input:checkbox[class=add_check]:checked").each(function () { questionids_arr.push($(this).attr('data-id')); }); console.log(questionids_arr); renvoie faux ; });</pre></p>
P粉741223880P粉741223880438 Il y a quelques jours472

répondre à tous(2)je répondrai

  • P粉573809727

    P粉5738097272023-08-29 11:58:39

    Vous devez enregistrer l'identifiant sélectionné dans un champ masqué du formulaire.

    <input type="hidden" id="selectedValues" name="selectedValues">

    Ajoutez la case onclick() et ajoutez la fonction suivante à JavaScript.

    function addRemove(id){
      // const selectedIds = $('#selectedValues').val();
      var selectedIds = JSON.parse($('#selectedValues').val());
      
      console.log(selectedIds);
      if($('#' + id).is(":checked")){
        //Add if id not there in array
        selectedIds.push(id);
      }else{
        //Remove from the array
        selectedIds = selectedIds.filter(function(item) {
            return item !== id
        })
      }
      
       $("#selectedValues").val(JSON.stringify(selectedIds));
       console.log(selectedIds)
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    
    <input type="checkbox" id="vehicle1" name="vehicle1" value="Bike" onclick="addRemove('vehicle1')"> Bike
    <input type="checkbox" id="vehicle2" name="vehicle2" value="Car" onclick="addRemove('vehicle2')"> Car
    
    
    <input type="hidden" name="selectedValues" id="selectedValues" value="[]">

    répondre
    0
  • P粉957723124

    P粉9577231242023-08-29 09:42:30

    Je pense que vous souhaitez ajouter ou supprimer des éléments dans le tableau et il peut être utilisé pour la pagination du tableau de données. J'ai trouvé une solution qui fonctionne, vous pouvez vérifier si cela fonctionne pour vous Les cases à cocher dans DataTables doivent capturer toutes les valeurs cochées

    répondre
    0
  • Annulerrépondre