php

时间:2017-11-07 23:35:51

标签: php html ajax

我为网站制作了一个表单,用户可以在其中发布自己喜欢的网站名称和链接。我也希望每次用户提交表单时都没有页面加载。我想要的是当用户提交表格时,他或她必须接受或阅读使用该服务的条款和条件。我添加了一个复选框,并谷歌如何传递验证服务器端的数据或如何提交表单而不加载页面。我在youtube上遇到了一个非常好的教程,他写了html php和ajax代码。我实现他的代码,看到服务器端收到的所有数据都接受复选框。我尝试在PHP的服务器端操作代码很少,但没有任何作用。当我尝试没有Ajax它工作。 即使我没有检查它,我总是收到复选框ON ..有什么帮助吗?

HTML:

<form action="checkbox1.php" method="post">
      <input name="name" id="name" type="text"/><br/>
      <input type="text" id="name2" name="name2"><br/>
      <input type="checkbox" id="checkbox" name="checkbox"><br/>
      <input type="submit" id="submit" name="submit">
    </form>

Ajax:

 $(document).ready(function() {
    $("form").submit(function(event){
      event.preventDefault();
      var name  = $("#name").val();
      var name2  = $("#name2").val();
      var checkbox  = $("#checkbox").val();
      var submit  = $("#submit").val();
      $(".text-danger").load("checkbox1.php", {
        name: name,
        name2: name2,
        checkbox: checkbox,
        submit: submit
      });
    });
  });

php:

<?php
print_r($_POST);


if (isset($_POST["submit"])) {

$name = $_POST["name"];
$name2 = $_POST["name2"];
$checkbox = $_POST["checkbox"];

$nameerror = false;
$name2error = false;
$checkboxerror = false;
$errorEmpty = false;

if (empty($_POST["name"]) || empty($_POST["name2"])) {
    echo "There is something wrong with your error";
    $errorEmpty = true;
} elseif (empty($_POST["checkbox"])) {
    echo "Please check the box";
    $errorEmpty= true;
} else {
    echo "Thanks!";
}
}
?>

结果:Array ( [name] => Mark [name2] => Otto [checkbox] => on )

如果这个问题没有标签,我很抱歉,因为我不知道它是服务器端问题或ajax代码问题所以我添加了所有类别。

2 个答案:

答案 0 :(得分:1)

由于javascript中的这一行,您总是在PHP中获取复选框的值:

var checkbox  = $("#checkbox").val();

该行获得&#34;值&#34;复选框元素,无论是否已选中。你可以改为做这样的事情:

var checkbox = $("#checkbox").is(":checked") ? 'on' : '';

如果选中该复选框,则会发送on的值,如果未选中该复选框,则会发送空字符串。

答案 1 :(得分:0)

获取复选框的值将始终返回&#39; on&#39;。您应该尝试检查属性而不是值。

在您的Ajax代码中,试试这个:

$("#checkbox").prop("checked");