带有POST到php文件的Ajax xmlhttprequest

时间:2017-03-06 11:51:46

标签: javascript php ajax xmlhttprequest

大家好,我是ajax的新手,我有一个问题,我想调用一个php文件从javascript文件做一些数据库查询。 JS代码

$(document).ready(function(){
$(".delete").click(function(){
var xhttp;
    if(window.XMLHttpRequest)
       xhttp = new XMLHttpRequest();
    else
       xhttp = new ActiveXObject("Microsoft.XMLHTTP");
xhttp.onreadystatechange = function() {
    if(xhttp.readyState==4 && xhttp.status==200){
        $(".delete").css("color", "pink");
    }
};
    xhttp.open("POST","../admin-tasks/admin-delete-appointment.php",true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhttp.send("date="+date+ "&hour="+time);
});
});

和php文件。

<?php
session_start();
require_once("../connection.php");
if($_SESSION["password"]!=null) 
{   
if(!empty($_POST["date"]) && !empty($_POST["hour"])){
    $_SESSION["msg"]= "<script type='text/javascript'> alert('The appointment has been removed!');</script>";
    $date=$_POST["date"];
    $hour=$_POST["hour"];
...

我想指出请求正常,如果我通过html表单发送数据,那么php文件正在运行,问题是当我通过js文件尝试它时。状态为200,readyState最终为4。当我从js ??

调用它时,这是否正确
$_POST["date"] 
$_POST["hour"]

2 个答案:

答案 0 :(得分:0)

您是否尝试添加一些括号?

if(xhttp.readyState==4 && xhttp.status==200) {
    $(".delete").css("color", "pink");
    xhttp.open("POST","../admin-tasks/admin-delete-appointment.php",true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhttp.send("date="+date+ "&hour="+time);
}

答案 1 :(得分:0)

代码是完全正确的,我在方法日期发现了错误。如果我给出日期(“Y-m-d”,strtotime($ date))和var $ date而不是 - has /或w / e它不会将日期更改为您期望的格式。