При выборе поискового города перенаправить с помощью формы на другую страницу, используя PHP и JS - PullRequest
0 голосов
/ 08 ноября 2018

Я постараюсь объяснить мою проблему, и я надеюсь, что вы мне поможете. Я создаю базу данных с именем go_city_list и сохраняю в ней базу данных city_name и URL-адрес. Вот так я хочу работать с индексной страницей. Когда пользователь посещает индексную страницу, он имеет форму поиска в режиме реального времени, когда пользователь вводит название города, поиск покажет доступные города из базы данных, когда пользователь найдет соответствующий город при отправке, он будет перенаправлен в выбранный город. Проблема заключается в следующем, я создал форму поиска в режиме реального времени, которая отображает только доступные города из базы данных, а не перенаправление кода или onClick, чтобы перенаправить пользователя на следующую страницу. Я покажу вам свой код, чтобы понять, как решить этот код или какой код использовать для решения моей проблемы. ПРИМЕЧАНИЕ: я знаю, что могу создать список выбора и поместить код JavaScript 'onclick = "location.href =' www.yoursite.com ';"', но мне нужно сделать так, как я пишу. Спасибо всем.

Код индексной страницы:

<html>
    <head>
        <title>Index page</title>
        <script type="text/javascript">
    $(document).ready(function(){
        $('.search-box input[type="text"]').on("keyup input", function(){
            /* Get input value on change */
            var inputVal = $(this).val();
            var resultDropdown = $(this).siblings(".result");
            if(inputVal.length){
                $.get("cgi/backend-search.php", {term: inputVal}).done(function(data){
                    // Display the returned data in browser
                    resultDropdown.html(data);
                });
            } else{
                resultDropdown.empty();
            }
        });

        // Set search input value on click of result item
        $(document).on("click", ".result p", function(){
            $(this).parents(".search-box").find('input[type="text"]').val($(this).text());
            $(this).parent(".result").empty();
        });
    });
    </script>
    </head>
    <body>
        <form class="card card-sm go-rsfip">
                    <div class="card-body row no-gutters align-items-center">
                        <div class="col-auto">
                            <i class="fas fa-search h4 text-body"></i>
                        </div>
                        <div class="col search-box">
                            <input class="form-control form-control-lg form-control-borderless" autocomplete="off" type="text" placeholder="Choose city...">
                            <div class="result"></div>
                        </div>
                        <div class="col-auto ml-3">
                            <div class="go-rsbipd">
                                <button class="btn btn-lg btn-success go-rsbip" type="submit">Next</button>
                            </div>
                        </div>
                    </div>
                </form>
    </body>
</html>

Код для backend-search.php:

<?php
    try{
        $pdo = new PDO("mysql:host=localhost;dbname=db_name", "db_user", "db_pass");
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e){
        die("ERROR: Could not connect. " . $e->getMessage());
    }
    try{
        if(isset($_REQUEST["term"])){
            $sql = "SELECT * FROM go_city_list WHERE city_name LIKE :term";
            $stmt = $pdo->prepare($sql);
            $term = $_REQUEST["term"] . '%';
            $stmt->bindParam(":term", $term);
            $stmt->execute();
            if($stmt->rowCount() > 0){
                while($row = $stmt->fetch()){
                    echo "<p>" . $row["city_name"] . "</p>";
                }
            } else{
                echo "<p>Not in your city? Please, <a href=''>Request your city</a>. 
               </p>";
            }
        }  
    } catch(PDOException $e){
        die("ERROR: Could not able to execute $sql. " . $e->getMessage());
    }
    unset($stmt);
    unset($pdo);
?>

Если вам нужна дополнительная информация, напишите, чтобы знать. Спасибо всем:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...