数据库中动态复选框数组中的事件

时间:2013-10-22 16:47:30

标签: jquery arrays dynamic checkbox bind

嗨我有一个问题,尝试在复选框数组中绑定事件看起来好像绑定方法不起作用,我对探测事件发出警报但似乎什么都没发生

这是我的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>";
    }

这是一个私有方法,用于从另一个公共方法填充列表,打印复选框但事件未绑定。 根据下一个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);
            }
        });
    });

我真的很感激任何帮助

1 个答案:

答案 0 :(得分:0)

对于点击事件,您不需要每个循环...使用.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 ..您可以根据需要进行修改。