使用jQuery加载外部PHP文件?

时间:2019-01-28 19:31:16

标签: javascript php jquery html

原谅我提出这样的基本问题,但是我尝试过很多次并失败了,试图找出问题所在。我有一个非常简单的HTML表单,其中包含一个复选框。然后,我想使用jquery将外部php文件加载到与“ content” div中的表单相同的页面上,以便该表单明显可更新。 php文件只是检查是否选中该复选框并在屏幕上返回结果。这是html:

<html>
<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("#submitbutton").click(function(){
    $("#content").load("loadedpage.php");
    return false;
  });
});
</script>
</head>

<body>
<form id="testform" action="" method="post">

<input type="checkbox" id="checkbox1" name="checkbox1" value="testcheckbox">Check this box:</input>
<input type="submit" id="submitbutton" name="submitbutton" value="Submit">
</form>

<div id="content">

</div>

</body>
</html>

这是外部php文件:

<?php

    if(empty($_POST["checkbox1"]))
    {
        echo "box wasn't checked";
    }
    else
    {
        echo "box was checked";
    }

?>

我的问题是,无论是否选中该复选框,php都将返回“未选中该框”,但是,当我通过“ action”属性将此表单传递给php文件时,一切正常应该,因此我知道错误可能在jquery中。如果有人能阐明一点,我将非常感激。

3 个答案:

答案 0 :(得分:1)

您的方法是错误的。您可以使用Jquery做到这一点。

$(document).on("click", "#submitbutton", function(e){
    e.preventDefault(); // To stop form from submitting
    if($('#checkbox1').is(":checked")){
        $("#content").html("Checkbox is checked");
        $("#testform").submit();
    }else{
        $("#content").html("Checkbox is not checked");
    }
});

答案 1 :(得分:0)

您需要在.load()中发出的请求中发送复选框值,如下所示:

$(document).ready(function(){
  $("#submitbutton").click(function(){
    $("#content").load("loadedpage.php", {checkbox1: document.querySelector('#checkbox1').checked });
    return false;
  });
});

答案 2 :(得分:0)

CASE

$("#submitbutton").click(function(event){
    if ($("#checkbox1").is(':checked') === false) {
      $("#content").load("loadedpage.php");
    } else {
      $("#content").load("loadedpage.php", { checkbox1: true });
    }

    return false;
  });

您要在loadingpage.php中检查是否为空,而可以检查是非。