使用PHP,MySQL和AJAX的实时搜索框

时间:2018-02-05 09:45:23

标签: javascript php jquery ajax onkeyup

我正在尝试创建一个搜索框来显示MYSQL / PHP中的“地址”

我使用ajax刷新页面而不离开页面,但是当我在浏览器中运行时,它总是给我一个错误。当我使用console时,echo $ _POST ['name']的返回结果=(header.php的html代码+“我需要什么”+ footer.php的html代码)

<?php

        include 'header.php';
        include 'Connect.php';

        if( isset($_POST['ajax']) && isset($_POST['name']) ){
        echo $_POST['name'];
        exit;
        }
?>

        <form method="POST">
                <label>Username</label>
                <input type="text" name="name" required="required" id='name'>
                <div id='response'></div>
        </form>

  <script>
  $(document).ready(function(){
    $('#name').keyup(function(){
     var name = $('#name').val();

     $.ajax({
      type: 'post',
       url: index.php,
      data: {ajax: 1,name: name},
      success: function(response){
       $('#response').text(response);
      }
     });
    });
  });
  </script>

<?php

    if(isset($_POST['name'])){
    $username = $_POST['name'];
    $stmt = $con->prepare("SELECT Username, FullName, Adresse, Email, Phone FROM dbo.users WHERE Username= ?");
    $stmt->execute(array($username));

        while($row=$stmt->fetch(PDO::FETCH_ASSOC))
                            {
                    $Username = $row["Username"];    
                    $FullName = $row["FullName"];
                    $Adresse = $row["Adresse"];
                    $Email = $row["Email"];
                    $Phone = $row["Phone"];

                    echo "<tr>
                    <div>
                        <td>".$Username."</td>
                        <td>".$FullName."</td>
                        <td>".$sEID."</td>
                        <td>".$Email."</td>
                        <td>".$Phone."</td>
                    </div>
                        </tr>";
                } 
        echo "</table>
        </div>";
} else echo '<div class="alert alert-danger"> This Name <strong>is not exit</strong></div>';

        include $tpl.'footer.php';

    } 

?>

2 个答案:

答案 0 :(得分:0)

你的问题不是很清楚......如果我理解正确......这已被设计破坏,你正在调用页面本身并用整个页面的内容更新#name,那就是为什么你看到html +&#34;你需要什么&#34; (响应):响应是整个页面。

执行此操作的正确方法是在单独的脚本上移动PHP代码的第二部分(执行查询ecc。),然后通过在ajax调用中将其名称作为url参数调用该新脚本

答案 1 :(得分:0)

感谢您的回复,我想使用ajax返回的值与MYSQL / PHP一起使用以回显$ row [&#39; Address&#39;]; 如果我移动PHP代码的第二部分结果是 echo $ _POST [&#39; name&#39;] =(&#34;我需要什么&#34; + footer.php的html代码)