💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ امیر ابوئی
ویدیو تمرین سرچ 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);

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

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

 

بهترین پاسخ
امیر صالحی ۱۱ اسفند ۱۳۹۹، ۲۰:۲۶