Примечание: я хочу, чтобы это точно работало Показать данные из базы данных при загрузке
Я делаю живой поиск с использованием ajax, все хорошо, но есть только одна проблема, которую мне нужно решить, так что проблема в том, что ajax не работает при загрузке страницы, я имею в виду, что я получаю данные с URL-адреса, как этот. то есть, http://localhost/basic_hackings/search.php?q=usman
, здесь "üsman" - это данные, которые ищутся. Так что все работает правильно, но при обновлении это исчезает, я также использую onload
в jQuery, но все напрасно. см. код из более подробной информации.
ajax_search.php
:
<?php
$host = "localhost";
$dbUser = "root";
$password = "";
$database = "basic_hackings";
$dbConn = new mysqli($host,$dbUser,$password,$database);
if($dbConn->connect_error)
{
die("Database Connection Error, Error No.: ".$dbConn->connect_errno." | ".$dbConn->connect_error);
}
$search_data = $_GET['q'];
$qry = "select first_name, last_name, email, phone, city, country from customers where first_namelike '%$search_data%'";
$rs = $dbConn->query($qry);
$fetchAllData = $rs->fetch_all(MYSQLI_ASSOC);
$createTable = '<table>';
$createTable .= '<tr>';
$createTable .= '<th>First Name</th>';
$createTable .= '<th>Last Name</th>';
$createTable .= '<th>Email</th>';
$createTable .= '<th>Phone</th>';
$createTable .= '<th>City</th>';
$createTable .= '<th>Country</th>';
$createTable .= '</tr>';
foreach($fetchAllData as $customerData)
{
$createTable .= '<tr>';
$createTable .= '<td>'.$customerData['first_name'].'</td>';
$createTable .= '<td>'.$customerData['last_name'].'</td>';
$createTable .= '<td>'.$customerData['email'].'</td>';
$createTable .= '<td>'.$customerData['phone'].'</td>';
$createTable .= '<td>'.$customerData['city'].'</td>';
$createTable .= '<td>'.$customerData['country'].'</td>';
$createTable .= '</tr>';
}
$createTable .= '</table>';
echo $createTable;
$rs->close();
$dbConn->close();
?>
и ajax_search.js
:
$(document).ready(function() {
$('#form1').submit(function(e) {
e.preventDefault();
var search_data = $('#search_data').val();
$.ajax({
url: "ajax_search.php/?q=" + search_data,
type: "GET",
data: new FormData($("#form1")[0]),
contentType: false,
processData: false,
beforeSend: function(data) {
$(".main_search_content").html("");
$(".main_search_content").addClass("searching");
},
success: function(data) {
setTimeout(function() {
if (!(data == "")) {
$(".main_search_content").html(data);
}
else {
$(".main_search_content").html("Nothing Found!");
}
$(".main_search_content").removeClass("searching");
}, 500)
}
});
history.pushState(null, null, "?q=" + search_data);
}
});
});
а вот site.js
, где я использую onload
, см .:
$(window).on("load", function() {
$.ajax({
url: 'ajax_search.php',
success: function(data){
$(".main_search_content").html(data);
}
});
});