🔥 ۴۰ درصد تخفیف ثبت‌نام دوره‌ها قبل از افزایش قیمت‌ها
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ ربابه رحماندوست
ویدیو تمرین سرچ ajax
ناژو داور حل شده توسط ناژو داور

ببخشید برای تمرین پیاده سازی جستجوی در لحظه ویدیو آموزشی که نوشته قرار نمیگیره؟ چون دیدم نوشته طی هفت روز آینده قرار میگیره ولی هیچجوری قرار نگرفت و من کدم به مشکل برخورده می‌خوام ببینم مشکل از چیش هستش!

سلام و احترام

اکثر دانشجوها جواب درست تمرینو همونجا قرار دادن اگه دقت کنید و اگه میخوای کد خوتون رو بررسی کنید از کد زیر استفاده کنید

<!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>";
    }
}
ناژو داور ۲۹ بهمن ۱۳۹۹، ۰۵:۴۷

ببخشید امکانش هست این کدم رو یه بررسی کنید، کد شمارو که عیناً کپی  میکنم اجرا میشه ولی نمیدونم چرا این کدم که تقریباً مثل شما هستش رو اجرا نمیکنه!!

ربابه رحماندوست ۲۹ بهمن ۱۳۹۹، ۰۸:۴۸

سلام و احترام

کدتون رو بررسی کردم و مشکلتون مثل مشکل قبلی زمان اتصال به دیتابیس بود 

 

کد شما:

$db = new PDO("mysql:host=$host; dbname = $database; charset=utf8mb4", $username, $pass);

کدی که باید باشه:


$db = new PDO("mysql:host=$host;dbname=$database;charset=utf8mb4", $username, $pass);

فاصله‌ها رو باید پاک کنید و چسبیده بنویسید

باز اگه سوالی بود من در خدمتم، موفق باشید 

 

بهترین پاسخ
ناژو داور ۱۱ اسفند ۱۳۹۹، ۲۰:۲۶