Я просто пытаюсь использовать данные, представленные в форме поиска, для запроса базы данных и возврата результатов, аналогичных поиску. Моя форма выглядит следующим образом:Использование AJAX для отправки данных формы на страницу PHP
<div id="searchform">
<form method="get">
<form id="submitsearch">
<input id="shop" name="shop" type="text" placeholder="Find a shop" />
<input id="submitbutton" type="submit" value="Go"/>
</form>
</form>
<div id="searchresults">
</div>
</div>
Javascript У меня есть:
$("#submitsearch").submit(function(event) {
event.preventDefault();
$("#searchresults").html('');
var values = $(this).serialize();
$.ajax({
url: "external-data/search.php",
type: "post",
data: values,
success: function (data) {
$("#searchresults").html(data);
}
});
});
return false;
Я также пробовал ...
$("#submitbutton").click(function(){
var form_data = $("#submitsearch").serialize();
$.ajax({
url: "external-data/search.php",
type: 'POST',
data: form_data,
success: function (data) {
$("#searchresults").html(data);
}
});
return false;
});
И это, кажется, работает немного как это показывает результаты, первый ничего не делает. Он не отправляет данные на страницу PHP, но у меня есть PHP:
<?php
$str_shops = '';
$shop = $_POST['form_data'];
mysqli_select_db($db_server, $db_database);
$query = "SELECT * FROM shops WHERE name LIKE '%$shop%'";
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_shops .= "<strong>" . $row['name'] . "</strong><br>" .
$row['address'] . "<br><br>";
}
mysqli_free_result($result);
echo $str_shops;
mysqli_close($db_server);
?>
Любая помощь была бы принята с благодарностью! Заранее спасибо.
'print_r ($ _ POST);' в вашем PHP кода и 'console.log (данные)' в вашей функции успеха AJAX бы показать вам именно то, что ** будет ** послана на PHP –
Почему ваша форма вложена в другую форму? Ваш первый фрагмент javascript верен (хотя я не уверен, что это 'return false;' есть для) –
Вы должны искать данные в '$ _POST ['shop']' not '$ _POST ['form_data'] ' –