php ничего не повторяет из ajax javascript? - PullRequest
0 голосов
/ 18 января 2019

Я не могу получить эхо своего ввода, когда я вводю текст в поле поиска. Я получаю предупреждающий javascript, но не echo 2 для отображения в поле srv_search_mini_display. Я думаю, что AJAX не может получить доступ к find_Service.php

search.php

 <input id="service_search_box" class="form-control mr-sm-2" type="text" name="search" placeholder="Search Services..." oninput="searchService()">
 <div id="service_search_div" class="srv_search_mini_display d-none"></div>

<script type="application/javascript">

function searchService(){

    var srv_search = document.getElementById("service_search_box").value;

    var param = "service_search_box="+srv_search;

    if(srv_search.length > 0){

        $("#search_search_div").removeClass("d-none");

        var ajax = new XMLHttpRequest();

        ajax.onreadystatechange = function(){

            if(ajax.readyState === 4 && ajax.status === 200){

                if(ajax.responseText === ""){

                    document.getElementById("service_search_div").innerHTML = "";
                    $("#service_search_div").addClass("d-none");

                } else {

                    alert(param); document.getElementById("service_search_div").innerHTML = ajax.responseText;
                }

            }
        };

        ajax.open("POST",'find_Service.php',false);
        ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        ajax.send(param);

    } else{

        document.getElementById("service_search_div").innerHTML = "";
        $("#service_search_div").addClass("d-none");
    }

}
</script>

find_Service.php

 <?php

 require_once('database.php');
 $heidisql = pdo_con();

 echo 2; // does not even appear
  ?>

1 Ответ

0 голосов
/ 18 января 2019

Прежде всего вы должны убедиться, что ваш PHP-файл работает, вы можете проверить его, открыв find_Service.php отдельно или, как сказал @ADyson, проверить это в консоли проверки на вкладке сети.

Так как я видел, как вы используете jQuery, я немного упростил ваш код с помощью jQuery ajax и выбрал элемент со знаком $.

Я использую поддельный API-сервер, чтобы он работал здесь.

function searchService(){
  var srv_search = $('#service_search_box').val();
  var $srv_search_div = $('#service_search_div');

  if(srv_search.length > 0){
    $("#search_search_div").removeClass("d-none");

    $.post("https://jsonplaceholder.typicode.com/posts", //replace with "/find_Service.php"
    {
      service_search_box: srv_search,
    },
    function(data, status){
      if(status === "success" ){
        $srv_search_div.html(data.service_search_box); //replace with data
        $srv_search_div.addClass("d-none");
      }
      console.log(data);
    });

  }else{
    $srv_search_div.html("");
    $("#service_search_div").addClass("d-none");
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<input id="service_search_box" class="form-control mr-sm-2" type="text" name="search" placeholder="Search Services..." oninput="searchService()">
 <div id="service_search_div" class="srv_search_mini_display d-none"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...