События в динамическом массиве флажков из базы данных

0

Привет, У меня есть проблема с попыткой связать события в массиве checkboxes, как будто метод привязки не работает, я поставил предупреждение для проверки события, но ничего не случилось

Вот мой код jquery

$('input[name="id_especieganado[]"]').each(function(e){
    //$('[name="id_especieganado[]"]').click(function() {
        var $this = $(this);

        var id_jurisdiccion = new Array();
        var jurisdicciones = "";
        //id_jurisdiccion = $("#id_jurisdiccion[]");
        var i = 0;
        $(this).bind('click',function(){
        //$('input[name="id_especieganado[]"]').each(function(){
            if($(this).is(':checked'))
            {
                alert($(this).val());
                id_jurisdiccion.push($(this).val());
                jurisdicciones += "id_jurisdiccion[]="+$(this).val()+"&";
                $("#buscarrfc").val("Hola");
            }
        })
        //if($("#id_jurisdiccion[]").attr("checked")==true)
            //alert($("input[name='id_jurisdiccion[]']").val());
        $.ajax({
            url:"funciones_jquery2.php",
            type: "POST",
            dataType: 'html',
            data: jurisdicciones,
            success: function(datos){
                $("#listamunicipios").html(datos);
                //alert(datos);
            }
        })
            //})
    });

И динамический массив, созданный из базы данных, поступает из следующего метода в классе

private function especies_ganado()
    {
        $database = $this->conexion_db();
        $resultado = pg_query($database, "SELECT *FROM especies_ganado;");
        echo "<tr><td>";
        while($row = pg_fetch_array($resultado))
        {
            echo "<input type=\"checkbox\" name=\"id_especieganado[]\" id=\"id_especieganado[]\" value=\"$row[id_especieganado]\"> $row[especie_ganado]<BR>";
        }
        echo "</td></tr>";
    }

Это частный метод, который используется из другого общедоступного метода для заполнения списка, эти флажки печатаются, но события не привязаны. Эти флажки печатаются в зависимости от элемента управления select в следующем коде jquery.

$("#id_cedulaverificacion").change(function(){
        var id_cedulaverificacion = $("#id_cedulaverificacion").val();
        var id_tipovisita = $("#id_tipovisita").val();
        //alert(id_cedulaverificacion);
        $.ajax({
            url: "funciones_jquery.php",
            type: "POST",
            data: "id_cedulaverificacion="+id_cedulaverificacion+"&id_tipovisita="+id_tipovisita,
            success: function(datos){
                $("#cedulas").html(datos);
            }
        });
    });

Любая помощь, которую я бы очень ценю

Теги:
arrays
dynamic
checkbox
bind

1 ответ

0

вам не нужен каждый цикл для события click... используйте .on() для динамически добавленного элемента.

 $(document).on('click','input[name="id_especieganado[]"]',function(){

   var jurisdicciones = $('input[name="id_especieganado[]"]:checked').map(function(){
       return this.value;
    }).get().join(',');
    alert(jurisdicciones); //this will have comma seperated checked values
    if(jurisdicciones !=""){ //check if not empty then call ajax
      $.ajax({
        url:"funciones_jquery2.php",
        type: "POST",
        dataType: 'html',
        data: {data:jurisdicciones}, //comma seperated values.
        success: function(datos){
            $("#listamunicipios").html(datos);
            //alert(datos);
        }
      })
    }

});

с этим проверяемых значений размещена в качестве data на сервер, так что вы можете взорвать его с , и получить соответствующие значения. я использую, если на всякий случай, если проверенное значение пусто, тогда вам не нужно вызывать ajax.. вы можете изменить его по мере необходимости.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню