нажмите выбрать из результатов вызова AJAX (без JQuery) - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь получить некоторые результаты с помощью сценария поиска в реальном времени, и выбранный вариант остается на входе, где я напечатал запрос, до сих пор у меня есть это, и я получаю список, когда я печатаю, но я ' Я пробовал разные конфигурации и до сих пор не заставил его работать. Вот что у меня есть:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Prueba de asincronía</title>
    <script>
    function showResult(Option) {
      if (Option.length==0) {
        document.getElementById("livesearch").innerHTML="";
        document.getElementById("livesearch").style.border="0px";
        return;
      }
      if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
      } else {  // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=function() {
        if (this.readyState==4 && this.status==200) {
          document.getElementById("livesearch").innerHTML=this.responseText;
          document.getElementById("livesearch").style.border="1px solid #A5ACB2";
        }
      }
      xmlhttp.open("GET","estados.php?busca_edo="+Option,true);
      xmlhttp.send();
    }
    </script>
      </head>
      <body>
    <form>
    <input type="text" size="30" onkeyup="showResult(this.value)" value="">
    <div id="livesearch"></div>
    </form>
      </body>
    </html>

И запрос mysqli выглядит так:

    <?php
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    include("db_connetion.php");

    $states_search = $_GET['busca_edo'];
    $q4=mysqli_query($cnx,"SELECT * FROM estados WHERE estado LIKE '%$states_search%' ORDER BY estado ASC");

    if(mysqli_num_rows($q4) >= 1){

    while($rows=mysqli_fetch_assoc($q4)){
    ?>

    <option value="<?= $rows['id'] ?>"><?= $rows['estado'] ?></option>

    <?php
    }
    }else{
    echo '<option value="">No hay resultados</option>';
    }
    ?>

Может кто-нибудь указать мне правильное направление и, пожалуйста, не JQuery?

Спасибо вам всем.

1 Ответ

0 голосов
/ 01 июля 2018

Я просто переписываю цикл while, поместите его в свой код, и вы получите точный результат.

if(mysqli_num_rows($q4) >= 1){
    while($rows=mysqli_fetch_array($q4, MYSQLI_ASSOC)){
        echo "<option value='".$rows['id']."'>".$rows['estado']."</option>" ;
    }
}
else{
    echo '<option value="">No hay resultados</option>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...