我正在尝试在更改复选框时创建一个表单提交 我的代码如下。 .我的问题是什么都没有发生
gotofile.php
文件但是//做某事 on the sucess 函数被执行
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。
希望对您有所帮助。
关于php - 更改复选框时的 ajax 发布表单 jquery ajax 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11683128/