2017-02-27 5 views
2

Hallo,jQuery AJAX mit Array

Ich bin an einem Projekt arbeiten und versuchen, den Wert meines mehrere ausgewählten „Kontrollkästchen“ zu senden. Das Ergebnis ist jedoch immer undefiniert. Er kann die Boxen nicht finden. Sie bleiben leer. Ich habe eine andere Eingabe auf der gleichen Seite getestet, die er gefunden hat.

Das Problem hierbei ist, dass mein Eingabefeld undefiniert bleibt (für Testzwecke I "geprüft" zwei Ankreuzfelder)

pager.js

var requestGroupDel = false; 
$('.agg_trash').on("click", function() { 
    if (requestGroupDel == false) { 
     requestGroupDel = true; 

     var check_list = $('input[name=check_list]').val(); 

     requestDel = false; 

     $.ajax({ 
      type: "POST", 
      url: "app/control/ajax.php?action=groupdelete", 
      async: true, 
      data: { 
       "check_list": check_list 
      }, 
      success: function(data) { 

       data = $.trim(data); 
       requestGroupDel = false; 

       console.log(data); 

      } 
     }); 

    } 
}); 

Das Formular (es ist in einer while-Schleife)

<input type="checkbox" class="agg_check" name="check_list[]" value="' . $artikel['id'] . '"> 

Alle Ankreuzfelder haben den gleichen Namen, da ich das Ergebnis wollen als ein Array, so dass ich eine foreach laufen kann. Warum ist dieser Eingang nicht definiert?

Antwort

2

könnten Sie verwenden das checked Attribut die Werte dieser Eingänge zu erhalten. Und dann, durchlaufen Sie es mit each() function, um Ihr Array zu erstellen.

das heißt:

var check_list = [] 
$("input[name='check_list[]']:checked").each(function() { 
    check_list.push($(this).val()); 
}); 
console.log(check_list); 

Ausgang:

Array [ "2", "3", "4" ]

0

ändern

var check_list = $('input[name=check_list]').val(); 

von

var check_list = $('input[name^="check_list"]:checked').toArray().map(function(el){ 
    return $(el).val(); 
}); 
+0

Leider check_list noch nicht definiert werden. – Synthiatic