• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ajax -> PHP (Array)

sveka

Mitglied
Hallo, ich habe mehrere Checkboxen und möchte nach jedem anklicken einer Checkbox, dass per Ajax Daten aus einer DB geladen werden. Mit einem Einzelwert klappt auch alles. Aber wie bekomme ich ein Array übertragen? Hier die entsprechenden Codeteile.

Die Checkboxen (kommen per while-Schleife. Sind also mehrere, alle mit demselben Namen.

PHP:
echo ' <input class="form-check-input" type="checkbox" name="kategorie[]" value="' . $check['ID'] . '" id="kategorie" data="' . $check['ID'] . '"> ';

Hier das Script...

Javascript:
<script>
$(document).ready(function(){

 load_data();
      
 function load_data(query)
 {
    
  $.ajax({
   url:"ajax/select_u_kategorien.php",
   method:"POST",
   data:{query:query},
   success:function(data)
   {
    $('#unterkategorie_ausgabe').html(data);
   }
  });
 }
 $('input[name="kategorie[]"]').change(function(){
  var search = [];
  search = $(this).val();
  if(search != '')
  {
   load_data(search);
  }
  else
  {
   load_data();
  }
 });
});

</script>

Es funktioniert ... aber ich brauche ein Array was sich nach jedem Klick / oder DeKlick auf eine Checkbox aktualisiert.

In der PHP greife ich normal per $_POST auf die Variable zu. Danke.
 
Werbung:
Das geht auch bei Checkboxen? Denn diese haben alle denselben Namen, da ich ein Array benötige.
 
Bei mir sind die Checkboxen beispielsweise "Kategorien" und benötige die IDs (als Value) um dann damit weitere Unterkategorien aus einer weiteren Tabelle zu lesen. Natürlich nur von den "gecheckten".

Daher die Idee des Arrays ...
 
Werbung:
Ich habe auch noch ein data-Attribut. Das könnte man in JQuery auch nehmen. Aber wie bekomme ich das in ein Array?
 
Ich habe auch noch ein data-Attribut. Das könnte man in JQuery auch nehmen. Aber wie bekomme ich das in ein Array?
ein document.querySelectorAll('input:checked') liefert dir alle ausgewählten Checkboxen (ggf. Selector noch um den Namen der Checkboxen erweitern), über eine Schleife lassen sich dann alle Werte einem Array hinzufügen - zum Übertragen dann einfach einen String daraus machen. Das ganze geht sicher auch mit JQuery, Vanilla-JS reicht aber genauso.
 
Werbung:
Hm. Habe jetzt erstmal den Teil

Javascript:
 let cbvals = [];
        $('.form-check-input').each((idx, item) => {
            if (item.checked) cbvals.push(item.value);
        });
        console.log(cbvals);

getestet und in der Konsole nachgesehen ... aber diese ist bei mir leer. Auch wenn ich Checkboxen "checke".
 
Ich danke nochmal für die tolle Hilfe. :) Ich habe jetzt auch beschlossen mich mehr mit JQuery / JavaScript zu beschäftigen. Es erleichtert manche Dinge doch ungemein.
 
Werbung:
Zurück
Oben