В конце функции Javascript, которая вызывается, когда пользователь заполняет опрос, устанавливаются три переменные. Теперь я хочу взять эти три переменные и заполнить их в базе данных MySQL, которая работает на локальном хосте через XAMPP. Мой проект находится в папке htdocs XAMPP. Я попробовал AJAX-подход с jQuery, и я также попробовал эту функцию внутри моего JS:
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
data = "uni_id="+variable1+"&additiv="+variable2+"&konventionell="+variable3;
xmlhttp.open("POST","speicherung.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}
Внутри моего speicherung.php выглядит так:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "survey_data";
if(isset($_POST)){
$uni_id = $_POST['uni_id'];
$additiv = $_POST['additiv'];
$konventionell = $_POST['konventionell'];}
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO result_data (uni_id,additiv,konventionell,data_js)
VALUES ('$uni_id', '$additiv', '$konventionell', '0')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
К сожалению, когда я выполняю JS, он ничего не вставляет в мою таблицу MySQL. Что я могу изменить, чтобы должным образом передать переменные JS в свою базу данных, чтобы в любой момент позже получить к ним доступ из html?
Спасибо!