使用Ajax将我的Javascript变量传递给PHP


Passing my Javascript Variable to PHP using Ajax

我正在尝试使用AJAX将我的Javascript变量传递给PHP变量,以便更新我的SQL。目前正在调用该函数,但AJAX没有将数据发送到PHP.PHP。

代码更新:

function placeData(){
        //Variable is caled and input is updated//
        var hour1Data = document.getElementById("hourDataInput").value;
        document.getElementById("hour1").innerHTML = hour1Data;
        //Launch AJAX//
        $.ajax({
            type: "POST",
            url: "PHP.php",
            data: {hour1Data: "hello", loginName: <?php echo $_POST['loginName'] ?>},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(result){
                alert(result.d);
                console.log(result);
            }
        });
    }
//php.php
 if(isset($_POST['hour1Data']))
        {   
            echo "something is working"; 
            print_r($_POST); //Check the values here first
            $hour1Data = $_POST['hour1Data'];
            $sql = "UPDATE `$user` SET `$dateName`='$hour1Data' WHERE hour=1";
            if ($conn->query($sql) === TRUE) {
            echo "Record updated successfully";
            }
            else {
                echo "problem adding value";
            }
        }

以下是代码:

$.ajax({
    type: "POST",
    url: "PHP.php", //Check the url 
    data: {hour1Data: 1, loginName: "testUser"},
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(result){
        alert(result.d);
        console.log(result);
    }
});

Php代码:

 if(isset($_POST['hour1Data']))
            {   
                echo "<pre>"; 
                print_r($_POST); //Check the values here first
                $hour1Data = $_POST['hour1Data'];
                $sql = "UPDATE `$user` SET `$dateName`='$hour1Data' WHERE hour=1";
                if ($conn->query($sql) === TRUE) {
                echo "Record updated successfully";
                }
                else {
                    echo "problem adding value";
                }
            }

删除contentType,因为$_POST用于表单编码的内容类型。你可以在这里查看这个发布的问题以供参考-

具有contentType:';的Ajax调用;application/json';不起作用。

同样重要的是要注意Ajax请求中期望的数据类型以及PHP文件返回的数据类型。放入error回调,这样您就会知道错误响应是什么。

希望能有所帮助。