получить данные обратно из сценария PHP AJAX - PullRequest
0 голосов
/ 22 сентября 2018

Здравствуйте, я пытаюсь добавить функциональность поиска в реальном времени на свой веб-сайт. Я использовал ajax php для этого.

Я хотел бы, когда я нажимаю на результат поиска в реальном времени, чтобы изменить значение поля поиска в реальном времени ипоместите идентификатор выбранного результата в скрытое поле формы, которое будет использоваться для вставки позже

Я попытался сделать это в приведенном ниже коде, но он выдает следующую ошибку: Uncaught SyntaxError: missing) после списка аргументов

<script>
    $(document).ready(function(){
        load_data();
        function load_data(query)
        {
            $.ajax({
                url:"search.php",
                method:"GET",
                data:{textbook:query},
                success:function(data)
                {
                    $('#result').html(data);
                }
            });
        }
        $('#search').keyup(function(){
            var search = $(this).val();
            if(search != '')
            {
                load_data(search);
            }
            else
            {
                load_data();
            }
        });
    });
</script>

<script>

    selectxt(id, textbood_adress){

        $('#search').val(textbood_adress);

    }
</script>
<div class="form-group input-group" id="textbook">
<input type="text" name="search" id="search" placeholder="Search"  class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button"><i class="fa fa-search"></i>
</button>
</span>

</div>
<div id="result"></div>

и для php

include ("../../includes/config.php");
$output = '';

if(isset($_GET['textbook'])){

    $key=$_GET['textbook'];
$key = $db->escape($key);



    $results = $db->rawQuery("SELECT * from textbook where textbook_address like '%{$key}%' ");

    if($db->count > 0){

        $output .= '
      <div class="table-responsive">
       <table class="table table bordered">
       <tr>
         <th>Textbook address</th>
         <th>select?</th>
        </tr>';

        foreach ($results as $result) {

            $output .= '
  <tr>
    <td>'.$result["textbook_address"].'</td>
    <td><a id="selectclick" href="#" onclick="selectxt('.$result['id'].','.$result['textbook_address'].')">select</a></td>
   </tr>
  ';


        }

        echo $output;

    }else{

        echo "<span>No results for your search</span>";

    }






}



?>

1 Ответ

0 голосов
/ 22 сентября 2018

Ваше объявление функции неверно.Измените свой код JavaScript с

<script>
$(document).ready(function(){
    load_data();
    function load_data(query)
    {
        $.ajax({
            url:"search.php",
            method:"GET",
            data:{textbook:query},
            success:function(data)
            {
                $('#result').html(data);
            }
        });
    }
    $('#search').keyup(function(){
        var search = $(this).val();
        if(search != '')
        {
            load_data(search);
        }
        else
        {
            load_data();
        }
    });
});
</script>
<script>

selectxt(id, textbood_adress){

    $('#search').val(textbood_adress);

}
</script>

на

<script>

function load_data(query) {
    $.ajax({
        url: "search.php",
        method: "GET",
        data: {textbook: query},
        success: function (data) {
            $('#result').html(data);
        }
    });
}

function selectxt(id, textbood_adress) {
    $('#search').val(textbood_adress);
}

$(document).ready(function () {
    load_data();
    $('#search').keyup(function () {
        var search = $(this).val();
        if (search != '') {
           load_data(search);
        }
        else {
           load_data();
        }
     });
});
</script>

Объявление функции JavaScript было неверным и также неуместным.Вот пример на CodePen .

Пожалуйста, проверьте и убедитесь, что $result['textbook_address'] не содержит '.Это нарушит вывод html, так как браузер попытается неправильно его интерпретировать

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