ببخشید برای تمرین پیاده سازی جستجوی در لحظه ویدیو آموزشی که نوشته قرار نمیگیره؟ چون دیدم نوشته طی هفت روز آینده قرار میگیره ولی هیچجوری قرار نگرفت و من کدم به مشکل برخورده می خوام ببینم مشکل از چیش هستش!
سلام و احترام
کدتون رو بررسی کردم و مشکلتون مثل مشکل قبلی زمان اتصال به دیتابیس بود
کد شما:
$db = new PDO("mysql:host=$host; dbname = $database; charset=utf8mb4", $username, $pass);
کدی که باید باشه:
$db = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $pass);
فاصله ها رو باید پاک کنید و چسبیده بنویسید
باز اگه سوالی بود من در خدمتم، موفق باشید
سلام و احترام
اکثر دانشجوها جواب درست تمرینو همونجا قرار دادن اگه دقت کنید و اگه میخوای کد خوتون رو بررسی کنید از کد زیر استفاده کنید
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
input#city {
padding: 5px 10px;
border-radius: 5px 5px 0 0 ;
border: 1px solid dodgerblue;
font-family: iransans;
direction: rtl;
width: 300px;
}
#re {
position: relative;
font-family: iransans;
margin: 10px;
direction: rtl;
width: 320px;
margin: 0 auto;
border-radius: 0 0 5px 5px;
border: 1px solid dodgerblue;
border-top: none;
}
.success:hover{
background-color: #eee;
cursor: pointer;
}
.error {
color: red;
}
.icon{
position: absolute;
top:5px;;
left: 5px;;
}
</style>
</head>
<body style="text-align:center;">
<i class="far fa-clock"></i>
<input type="text" id="city" placeholder="جستجو کنید ..." autocomplete="off">
<div id="re"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
var inputData = $("#city");
var result = $("#re");
inputData.keyup(function(e) {
e.preventDefault();
result.html("<img src='loader.gif' width='10px' height='10px'>");
$.ajax({
url: 'response.php',
method: 'POST',
data: {data: inputData.val()},
success: function(response) {
$("#re").html(response);
}
})
})
});
</script>
</body>
</html>
و
<?php
$db = new PDO("mysql:host=localhost;dbname=iran", "root", "");
sleep(1);
$city = $_POST['data'];
if (strlen(trim($city)) > 0) {
$sql = "SELECT name FROM city WHERE name LIKE :keywords";
$stmt = $db->prepare($sql);
$stmt->bindValue(':keywords', $city . '%');
$stmt->execute();
$re = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($re as $r) {
echo "<div class='success'><span>$r->name</span></div>";
}
}
ببخشید امکانش هست این کدم رو یه بررسی کنید، کد شمارو که عیناً کپی میکنم اجرا میشه ولی نمیدونم چرا این کدم که تقریباً مثل شما هستش رو اجرا نمیکنه!!