Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery、AJAX和MySQL中的复选框问题_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript jQuery、AJAX和MySQL中的复选框问题

Javascript jQuery、AJAX和MySQL中的复选框问题,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,将带有复选框的变量集的值发送到MySQL数据库时遇到一些问题 嗯 我有一个复选框、电子邮件字段和一个按钮: <label><input type="checkbox" id="emailSubCheck"> Check me</label> <input type="text" class="form-control email-field" id="emailInput" name="email" placeholder="Your

将带有复选框的变量集的值发送到MySQL数据库时遇到一些问题

我有一个复选框、电子邮件字段和一个按钮:

    <label><input type="checkbox" id="emailSubCheck"> Check me</label>

    <input type="text" class="form-control email-field" id="emailInput" name="email" placeholder="Your e-mail...">

    <button id="sendReportAsMail" class="btn btn-default" type="button">Send</button>
在日志中,如果我在提交前勾选了该框,则完全显示为1,如果我没有勾选,则显示为0

这让我相信jQuery(尽管不是完美的)是有效的

在my sendSubmits.php中,我有:

$email=$_POST["email"];
$checked=$POST["checked"];

$sql = "INSERT INTO sendsubmits(email, checked) VALUES ('$email', '$checked')";
(注意:不包括DB连接。每次提交时,电子邮件都会完美地插入到数据库中。只缺少var checked值)

mymysql数据库中选中的
列是INT(1)。无论我尝试什么,它总是注册为0

我做错了什么


提前多谢

如果在javascript中输入了错误的ID,请尝试更改输入的ID,如下所示:

HTML

<label><input type="checkbox" id="emailSubCheck"> Check me</label>
您还忘记了POST变量中的
,请将其替换为:

PHP

$checked=$POST["checked"];
为此:

$checked=$_POST["checked"];
你好像忘了这里的“uu”符号:

$checked=$_POST["checked"];
ids“emailSubCheck”(javascript)和“emailSubscribe”(html)是不同的

而且一切都可以用更简单的方式完成:

$(document).ready(function() {
  $("#sendReportAsMail").click(function(){

    var email = encodeURIComponent($('#emailInput').val());
    var checked = $("#emailSubscribe").prop("checked") ? 1 : 0;
    $.ajax({
      type:"POST",
      url:"sendSubmits.php",
      data:"email="+email+"&checked="+checked, 
      success:function(data){
        console.log('Ok. So data have been submitted and as I get it. Checked value is now ' + checked);
      }
    });
  });
});

尽量不要将其作为字符串插入,即删除其周围的引号。什么是
$(“#emailSubCheck”)
?它不会在html中显示。正在发送的
选中的
值是多少?可以检查在实际请求浏览器开发工具网络中发送的数据或将其记录到控制台我已尝试删除类似以下内容的引号:
$sql=“插入sendsubmits(email,checked)值(“$email”,“$checked”)不幸的是没有工作。我是否也必须在jQuery脚本中将其解析为整数?对不起,身份证混淆了。起初我粘贴了错误的HTML。复选框中应该是ID=“emailSubCheck”。值得指出的是,您的SQL查询不安全,并且容易受到SQL注入的攻击。也许您只是为了简化您的问题而省略了转义和清理,但如果没有,请研究SQL安全技术。感谢您指出Spencer。我知道有个问题。但我还不太确定如何修复它。这是下一步。如果你有一个伟大的阅读它,我想一个链接:)耶!成功了。非常感谢。你帮我省去了头痛,谢谢。对你的建议似乎容易多了。我将尝试以这种方式重写我自己的代码(我输入了大量其他变量。只是为了在这里发布它而清理)。感谢您一路优化。太酷了!
$checked=$_POST["checked"];
$(document).ready(function() {
  $("#sendReportAsMail").click(function(){

    var email = encodeURIComponent($('#emailInput').val());
    var checked = $("#emailSubscribe").prop("checked") ? 1 : 0;
    $.ajax({
      type:"POST",
      url:"sendSubmits.php",
      data:"email="+email+"&checked="+checked, 
      success:function(data){
        console.log('Ok. So data have been submitted and as I get it. Checked value is now ' + checked);
      }
    });
  });
});