0

我拥有的是我的 mySQL 数据库中的一组项目,每个项目都有一个复选框。我正在努力做到这一点,因此当您单击复选框时,它将向数据库提交已选中或未选中的项目的信息。我有它未选中 = 1 和选中 = 0。这是我想要显示该项目的位置。

现在我的问题是我似乎无法将任何东西提交到我的数据库中,我对 jQuery 的了解不足以为其编写函数,所以我需要一些帮助。这是我的代码得到的。

if(isset($_POST['submit'])){
        foreach($_POST['id'] as $id){
            $value = (isset($_POST['location'][$id]) && $_POST['location'][$id]=="0" ? '0' : '1');
            $insert = mysql_query("UPDATE items SET location='$value' WHERE id='$id'") or die('Insert Error: '.mysql_error());
        }
    }
echo '<form id="form1" method="post"><input type="submit" name="submit" value="Submit">';
$result = mysql_query("SELECT * FROM items")
    or die("Query Failed: ".mysql_error());
    $counter = 0;
    echo '<div class="specialcontainer">';
while($row = mysql_fetch_array($result)){
    list($id, $item_info, $item_img, $price, $sale, $location) = $row;
    if($location == '0'){
        $set_checked = ' checked="checked" ';
    }else{
        $set_checked = '';
    }
    if($counter % 5==0) {
        echo '</div>';
        echo '<div class="specialcontainer">';
    }
    echo '<div class="special"><img src="../images/items/'.$item_img.'" width="130" /><br />';
    echo $item_info.'<br />';
    echo 'Reg. $'.$price.'<br />';
    echo 'Sale $'.$sale.'<br />';
    echo 'Slide Show: <input type="checkbox" id="ch" value="0" name="location['.$id.']"'.$set_checked.' /><br />';
    echo '<input type="button" value="Edit" name="edit" onclick="window.location.href=\'specials.php?action=edit&id='.$id.'\'">';
    echo '<input type="button" value="Delete" name="Delete" onclick="window.location.href=\'specials.php?action=delete&id='.$id.'\'">';
    echo '<input type="hidden" name="id[]" value='.$id.' />';
    echo '</div>';
    $counter++;
}
echo '</div>';
echo '<input type="submit" name="submit" value="Submit"></form>';

如您所见,我确实有提交按钮,但我的计划是为 onChange 提交删除它。我试过 onchange="this.form.submit();" 在复选框参数中,但它不能正常工作。所以我只希望它在任何时候点击复选框时提交。

4

2 回答 2

1

像这样的 Ajax 解决方案会起作用吗?

$('ch').click(function() {
    //this is what goes into $_POST
    var data = 'id='+ $(this).attr('name') +'&checked=' + $(this).is(':checked');
    $.ajax({
        //This would be the url that would handle updating the MySQL Record
        url: my_mysql_handler.php,
        cache: false,
        type: 'POST',
        data: data,
        success: function(response) {
            alert(response); //or whatever you want to do with the success/fail notification
        }
    });
});
于 2012-04-19T20:11:43.033 回答
0

您应该尝试使用复选框document.getElementById('form1').submit()的方法onchange

于 2012-04-19T19:22:46.573 回答