AJAX PHP数据库不工作没有错误

AJAX PHP数据库不工作没有错误

问题描述:

I am new to AJAX and am trying to insert form data into a database using ajax and php. It is simply not working, I had errors to start off but now there are no more errors and the database doesn't update and there is no response text. Please Help!

AJAX

    function submit(){
        var vid = <?php echo $user['vid'] ?>;
        var type = document.getElementById("type").value;
        var rules = document.getElementById("rules").value;
        var comments = document.getElementById("comments").value;
        var xhttp;
        if (window.XMLHttpRequest) {
            xhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xhttp.onreadystatechange = function() {
            if (xhttp.readyState == 4 && xhttp.status == 200) {
                document.getElementById("page").innerHTML = xhttp.responseText;
            }
        }
        xhttp.open("POST", "/content/training/request/submit.php", false);
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.send("vid="+vid+"&type="+type+"&rules="+rules+"&comments="+comments);
    }
</script>

PHP FILE AJAX IS CALLING:

<?php
require("http://".$_SERVER["HTTP_HOST"]."/config/db.php");
$stmt = $db->prepare("INSERT INTO trainingRequests (vid, type, rules, comments, timeSubmitted) VALUES (:vid,:type,:rules,:comments,:timeSubmitted)"); 
$stmt->bindParam(':vid', $vid);
$stmt->bindParam(':type', $type);
$stmt->bindParam(':rules', $rules);
$stmt->bindParam(':comments', $comments);
$stmt->bindParam(':timeSubmitted', $time);

$vid = $_POST["vid"];
$type = $_POST["type"];
$rules = $_POST["rules"];
$comments = $_POST["comments"];
$time = time();

$stmt->execute();

echo "Submitted!";

Don't use an HTTP URL in require. When you access the PHP script through the webserver, it runs the script (in another server instance, so it doesn't affect the current script), it doesn't return the script contents. Change it to:

require("../../config/db.php");