动态复选框问题

时间:2013-10-16 20:04:02

标签: php jquery dynamic checkbox

嗨我有一个动态复选框的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'))
            {
                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);
            }
        })
            //})
    });

动态复选框我是从Postgres DB和PHP

的数据库中写的

这是嵌入在类

中的代码

复选框看起来不错

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>";
    }

1 个答案:

答案 0 :(得分:0)

首先,$.ajax()调用位于.each()函数体中,因此您为每个复选框调用它(在页面加载时),但我认为您希望在发送数据时发送数据每个复选框都被点击。将它们放在点击处理程序中。

其次,在发送数据之前,您必须收集click事件处理程序中的每个复选框值。

// for every checkbox, add a click handler (no need for each anymore)
$('input[name="id_especieganado[]"]').bind('click',function() {
    // create an object for post data
    var post_data = {'id_jurisdiccion': new Array()};
    // collect the values from checked checkboxes
    $('input[name="id_especieganado[]"]:checked')).each(function() {
        post_data['id_jurisdiccion'].push($(this).val());
    });
    // send the data
    $.ajax({
        url:"funciones_jquery2.php",
        type: "POST",
        dataType: 'html',
        data: post_data,
        success: function(datos) {
            $("#listamunicipios").html(datos);
        }
    });
});