使用Ajax和Jquery的多个Checkbox表单问题

时间:2013-06-06 05:14:35

标签: php jquery ajax forms checkbox

我正在尝试使循环中的表单具有唯一ID。 这个问题只是第一种形式正在工作,其余所有其余的都没有触发jquery代码。

形式:

<?php foreach( $tasks as $tasks ) : ?>
<tr>
    <td><?php echo $tasks->title ?></td>
    <td><?php echo $newDate; ?></td>
    <td><?php echo $tasks->details ?></td>
    <td><?php echo $tasks->category ?></td>
    <td>

<form class="noclass">
    <input class="hideit id" type="text" name="id" value="<?php echo $tasks->id ?>" />
    <input type="checkbox" value="<?php echo $tasks->user ?>" name="value" id="checkbox-2-1" class="regular-checkbox big-checkbox" <?php echo $tasks->user ?> />
</form>

</td>
</tr>
<?php endforeach; ?>

Jquery的:

<script>
    $(function() {
        $('#checkbox-2-1').click(function() {
            var id = $(".id").val();
            var value = $(".check").val();
            var dataString = '?id=' + id + '&value=' + value + '&user=<?php echo $id ?>';
            alert(dataString);

            $.ajax({
                type: "POST",
                url: "http://example.com/process.php",
                data: dataString,
                cache: false,
            });
        })
    })
    return false;
</script>

2 个答案:

答案 0 :(得分:1)

你的第一张表格没有关闭......就像这样关闭

<form class="noclass">
    <input class="hideit id" type="text" name="id" value="<?php echo $tasks->id ?>" />
</form>
<form class="noclass">
    <input class="hideit id" type="text" name="id" value="<?php echo $tasks->id ?>" />
    <input type="checkbox" value="<?php echo $tasks->user ?>" name="value" id="checkbox-2-1" class="regular-checkbox big-checkbox" <?php echo $tasks->user ?> />
</form>

什么是

<?php foreach( $tasks as $tasks ) : ?>

尝试提供另一个变量,如

<?php foreach( $tasks as $task ) : ?>

然后改变symultanious

答案 1 :(得分:1)

您正在使用

var id = $(".id").val();  
var value = $(".check").val();

以及$(".id")和`$(“。check”)'将返回的是对象。

所以你需要将它转换为键值对的字符串,然后发送它。

另请参阅Gautam对foreach更正的回答。

ONE MORE

您正在重复checkbox-2-1 ID复选框evert-time循环获取执行,每个dom的ID必须唯一。

我的建议

使用以下代码。

用于复选框点击事件使用

$('input:ckeckbox[name="value"]').on('change',function(){ });

function(){ }内部用于获取class idcheck的值的代码,如下所示

$(this).closest('form.noclass').find('.id').val();
$(this).closest('form.noclass').find('.value').val()