У меня есть база данных MySQL, к которой я обращаюсь через PHP. Я начал с разработки и уточнения моего PHP-кода для доступа к этой базе данных с подготовленными операторами SQL. Я отправил POST-запросы для проверки кода (через Python) и вернул ожидаемые результаты.PHP и AJAX не работают
Однако я не могу это сделать с помощью функции AJAX JQuery. Мне кажется, что у моего кода могут быть недостатки, поскольку я никогда раньше не использовал их в сочетании с MySQL. Скажите, пожалуйста, где я ошибаюсь.
Моя ошибка заключается в том, что когда я запускаю свой код, я не получаю вывод в консоли JavaScript или на странице. Единственный способ, которым я знаю, что моя функция отправки даже называется, - это успех заявления alert("called")
.
HTML и JQuery:
<html>
<head>
<title>Login form</title>
<link rel="stylesheet" href="css/index.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
function sub(form){
alert("called");
$form = $(form);
$input = $form.find("[name='searchword']");
$.ajax({
url: "php/searchOld.php",
dataType: "application/json",
type: "POST",
data: "searchword="+$input.val(),
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
},
success: function(){
alert("transaction succeeded");
var arr = $.map(obj, function(el){
return el;
});
printResults(arr);
}
});
}
function printResults(arr){
for(var title of arr){
$pTag = $("<p></p>");
$pTag.append("<b>"+title+"</b>");
$("#titles").append($pTag);
}
}
</script>
<form id = "searchForm" method="POST" onsubmit = "sub(this)">
Enter the searchword: <input type="text" name = "searchword"><br>
<input type="submit">
</form>
<br><br>
<div id = "titles">
</div>
</body>
</html>
PHP:
<?php
include("connect.php");
$search = "%".$_POST['searchword']."%";
$query = mysqli_prepare($link,"SELECT Title FROM `right` WHERE Title LIKE ?");
if(!$query){
echo mysqli_error($link);
}
mysqli_stmt_bind_param($query, "s", $search);
$query->execute();
$query->bind_result($title);
$data = array();
while($query->fetch()){
array_push($data, $title);
}
echo json_encode($data);
?>
Ошибка jQuery ajax, а также скрипт php также имеет ошибки. Сначала разрешите файл php. Прокомментируйте '$ search ="% ". $ _ POST ['searchword']."% ";' Строка и жесткий код '$ search =" something "}, затем запустите скрипт php напрямую и посмотрите, что такое вывод. Если он показывает кодированный json массив заголовков, то дайте мне знать. – TipuZaynSultan