Я вызываю функцию на странице на тестовом php-сайте, чтобы отобразить html-форму для записи данных, которые будут отправлены в мою базу данных SQL через ajax, но по какой-то причине данные не вставляются. У меня есть все необходимые ссылки для начальной загрузки, js, ajax во включенном header.php, и у меня есть другие формы, отправляющие таблицы в той же базе данных на тестовом сайте, которые работают без проблем, так что соединение с базой данных выглядит нормально, что почему я так стараюсь понять, почему данные не вставляются.
Это тестовый сервер localhost на MAMP с использованием MySQL 5, PHP 5.
Мой файл с кодом для отображения формы ввода html при вызове находится в functions.php:
<?php
session_start();
$link = mysqli_connect("localhost", "user", "pass", "tables");
if (mysqli_connect_errno()) {
print_r(mysqli_connect_error());
exit();
}
// other code ...
function displayTextInput() {
global $link;
echo '
<div class="form">
<div class="form-group">
<textarea class="form-control" id="textDesc" placeholder="Description"></textarea>
<textarea class="form-control" id="textType" placeholder="Type"></textarea>
</div>
<button id="postTextButton" class="btn btn-primary">Post Text</button>
</div>';
}
?>
Мой вызов ajax находится в скрипте внутри footer.php:
<script>
$("#postTextButton").click(function() {
$.ajax({
type: "POST",
url: "actions.php?action=postText",
data: {textDesc: $("#textDesc").val(), textType: $("#textType").val()},
success: function(result) {
if (result == "1") {
alert("ajax successful");
} else if (result != "") {
alert("ajax unsuccessful");
}
}
})
})
</script>
И, наконец, мой SQL находится внутри actions.php:
if ($_GET['action'] == 'postText') {
if (!$_POST['TextDesc']) {
echo "Your text description is empty!";
} else {
$textDesc = mysqli_real_escape_string($link, $_POST['textDesc']);
$textType = mysqli_real_escape_string($link, $_POST['textType']);
$userIDForTable = mysqli_real_escape_string($link, $_SESSION['id']);
mysqli_query($link, "INSERT INTO text (`description`, `type`, `userid`) VALUES ('$textDesc', '$textType', '$userIDForTable')");
echo "1";
}
}
Я могу выводить операторы в разделе actions.php else {}, так что код определенно связан с этим, но я просто не могу понять, почему. Я даже связал приведенный выше код с другой таблицей php в той же базе данных, и она работала, поэтому я просто не могу понять, почему это не работает. В консоли нет ошибок, которые я вижу. Любая помощь будет принята с благодарностью.
Спасибо