ajax后表单复选框更改时jquery ajax不工作

ajax post form when checkbox is changed jquery ajax not working

本文关键字:ajax jquery 工作 表单 复选框      更新时间:2024-03-05

当复选框更改时,我正在尝试创建一个表单提交我的代码如下。我的问题是上什么都没发生

gotofile.php

文件,但//dosomething在成功时执行功能

jquery:

$("#container input[type=checkbox]").change(function(e){
                if($(this).attr('checked')) 
                {
                    var cnType=$(this).attr("id");
                    $.ajax({
                        type: "POST",
                        url: "gotofile.php",
                        data: "typID="+cnType ,
                        cache: false,
                        success: function(){ 
                            //do something 
                        }
                    });
                }
            });

php:

include '../dbconnection/dbconfig.php';

$typeID=$_POST['typID'];
$qryConnections="INSERT INTO ...";
$rslt1 = mysql_query($qryConnections);

html

<form id="cnct" method="POST">
                            <div id="container" style="">
                                <ul style="list-style: none;">
                                   <li><input type="checkbox" id="1" />A</li>
                <li><input type="checkbox" id="2" />B</li>
                                </ul>
                            </div></form>

有人能帮我做错事吗?

几个安全问题

请始终记住,任何浏览到您网站的人都可以查看您的JS。使用:

data : "typID="+cnType

这会让我认为typID是SQL中的字段。您没有CSRF过滤器,因此我可以编写一个ajax脚本来伪造有效请求,并从外部位置更新所有字段。需要记住的是,我建议你阅读CSRF或跨站点请求伪造。

为什么你的脚本不起作用

如果成功函数正在启动,则脚本已运行。通过在PHP中输出$_POST['typID']的值来调试它。如果发送正确,您将在控制台中看到变量值。

除此之外,让你的PHP为你的成功函数回显一个JSON响应来验证一切是否顺利总是很好的。

echo json_encode(array('response' => 'success'));

('response' => 'failed')或任何您需要的。然后,您可以在success函数中评估JSON。

我希望这能有所帮助。

首先应该使用click而不是change事件作为Jquery代码中的复选框。

第二件事是,您没有为html代码中的复选框提供任何值。

请询问它是否对您无效。

尝试

        $("#container input[type='checkbox']").click(function(e){
                var cnType=$(this).attr("id");
                $.ajax({
                    type: "POST",
                    url: "gotofile.php",
                    data: "typID="+cnType ,
                    cache: false,
                    success: function(){ 
                        //do something 
                    }
                });
         });