如何在不重新加载页面的情况下将数据javascript传递到php页面

时间:2018-08-21 12:06:34

标签: javascript php mysql ajax

嗨,大家需要帮助,如何在不重新加载页面的情况下使用javacript将值传递给php。我想发生的是,当我在文本框名称num1中输入一个值时,该值将转到available.php。 ...

这是我的代码。

html代码       

    <!-- Modal Staff-->
     <div id="add" class="modal fade" role="dialog" tabindex="-1" >
      <div class="modal-dialog">
       <form action="dashboard.php" method="post">
        <!-- Modal content-->
         <div class="modal-content">
         <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times; 
        </button>
        <h4 class="modal-title">Set Available Student</h4>
        </div>
         <div class="modal-body">
         <input type="text" name="num1" id="num1"  class="form-control" />
      </div>
      <div class="modal-footer">
        <input type="submit" name="submit" class="btn btn-success" value="Set">
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
    </form>
  </div>
</div>

javascript代码

    <script type="text/javascript">

    function availble_chair()
    {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET","available.php",false);
    xmlhttp.send(null);
    document.getElementById("count").innerHTML=xmlhttp.responseText;
    }
    availble_chair();
    setInterval(function(){ 
    availble_chair();
    },1000);
    </script>

这是我可用的php代码。php

<?php

    $set = '';

    $connection = mysqli_connect("localhost","root","","dbattendancelibrary");
    $query=mysqli_query($connection,"SELECT COUNT(Time_in)-COUNT(Time_out) as Status FROM `tbl_student_form`");
    $result = mysqli_fetch_array($query, MYSQLI_NUM);
    if($result) {
        if($result[0] <= $set) {
            $availble = $set-$result[0];
            echo "<p style='font-size:50px;margin-left:240px;'> " .$availble. " 
            </p>";
         } else {
            echo "<p class='alert alert-danger'>Library Already Full</p>";
         }         
    }
?>

1 个答案:

答案 0 :(得分:2)

Javascript:

首先,您需要一个on submit事件监听器,以便我们可以检测何时提交表单。

// get a reference to your form

var form = document.getElementsByTagName('form');

// i suggest adding a classname or ID to your form if you have more then one form on the page
// if that is the case, then select the form by ID or class instead

// add event listener to the form

form.addEventListener('submit', function(event) {

    // stop form submitting by default

    event.preventDefault();

    // get the value from the textbox, num1

    var num1 = this.querySelector('#num1').value;

    // send value of num1 to available.php via ajax

    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'available.php');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onload = function() {
        if (ajax.readyState == 4 && ajax.status == 200) {
            console.log("I worked!");
        } else {
            console.log("I didn't work!");
        }
    };
    xhr.send(encodeURI('num1=' + num1));

}

PHP

要从AJAX请求中获取num1值:

<?php

$num1 = isset($_GET['num1']) ? (int) trim($_GET['num1']) : 0;

if ($num1 > 0) {
    // success
}

?>