Как передать в ajax дополнительный параметр из php кода

142
14 марта 2019, 12:10

Нашел пример c реализацией поиска по БД с php+ ajax. Изначально пример возвращал html код со списком результатов. Захотел дополнить пример, и возвращать кроме списка, количество найденных слов. Как мне добавить к результату значение переменной $num, чтобы полученное значение вставить в класс total ? Код ниже

 <!DOCTYPE html>
<html >
<head>
    <meta http-equiv="Content-Type" charset="UTF-8">
    <title>PHP, jQuery Поиск</title>
    <link rel="stylesheet" href="my.css" type="text/css">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(function() {
        $(".search_button").click(function() {
            // получаем строку, которую ввел пользователь
            var searchString    = $("#search_box").val();
            // формируем поисковый запрос
            var data            = 'search='+ searchString;
            // если введенная информация не пуста
            if(searchString) {
                // вызов ajax
                $.ajax({
                    type: "POST",
                    url: "do_search.php",
                    data: data,
                    beforeSend: function(html) { // действие перед отправлением
                        $("#results").html('');
                        $("#searchresults").show();
                        $(".word").html(searchString);
                   },
                   success: function(html){ // действие после получения ответа
                        $("#results").show();
                        $("#results").append(html);
                        //var json = $.parseJSON(1);
                        $(".total").append(json);
                  }
                });
            }
            return false;
        });
    });
    </script>
</head>
<body>
<body>
        <div id="container">
            <div style="margin:20px auto; text-align: center;">
                <form method="post" action="do_search.php">
                    <input type="text" name="search" id="search_box" class='search_box'/>
                    <input type="submit" value="Search" class="search_button" /><br />
                </form>
            </div>
            <div>
                <div id="searchresults">Search results for <span class="word"></span> total: <span class="total"></span></div>
                <ul id="results" class="update">
                </ul>
            </div>
        </div>
</body>
</html>

файл dosearch.php :

    <?php
if (isset($_POST['search']))
{
    include('db.php');
    $db = new db();

    $find = mysqli_real_escape_string($GLOBALS['dbh'],$_POST['search']);
 $sql = "SELECT title, url FROM pages WHERE content LIKE '%" . $word . "%' ORDER BY title LIMIT 10";
    //города
    $sql = "SELECT title, url FROM cities WHERE title LIKE '%" . $find . "%' ORDER BY title LIMIT 10";

    $row = $db->select_list($GLOBALS['dbh'],$sql);
    if(count($row)) 
    {
        $end_result = '';
        foreach($row as $r)
        {
            $result = $r['title'];
            $num = count($row);
            $result_url = $r['url'];
            if (empty($result_url)) {
                $result_url = '#';
            }
            // выделим найденные слова
            $bold = '<span class="found">' . $find . '</span>';
            $end_result .= '<li><a class="result" href="'.$result_url.'">'. str_ireplace($find, $bold, $result). '</a></li>';
        }
        echo $end_result;
        //return json_encode(1);
    }
    else
    {
        echo '<li>No results found</li>';
    }
}
?>
Answer 1

в таком случае php должен однозначно возвращать json: echo json_encode(array('num' => $num, 'results' => $results)), где $results - это так же массив, содержащий все необходимые данные, чтобы сформировать html-ку на клиенте.

READ ALSO
Редирект Apache, на локальный адрес на устройствах под управление Windows и Android

Редирект Apache, на локальный адрес на устройствах под управление Windows и Android

Полностью с нуля реализовал Cаptive Portal(iptables и Php), но появилась проблема на устройствах по ОС android и Windwos,редиректит происходит на их сервера,...

145
Помогите с подключением PDO ODBC на PHP

Помогите с подключением PDO ODBC на PHP

помогите установить драйвер на сервер PDO ODBC Хочу подключится удалено к базе MDBКакие команды и действия нужны для установки и какой код чтоб...

143
Как прибавить дни к числу? 28.11.2018 + 30 = 28.12.2018

Как прибавить дни к числу? 28.11.2018 + 30 = 28.12.2018

В общем есть дата, Не текущая, Как пример возьмём $EKDate = 2811

123
Ошибка в конструкторе копирования

Ошибка в конструкторе копирования

Есть следующий упрощённый класс:

166