簡體   English   中英

AJAX搜索未返回任何內容

[英]AJAX search not returning anything

我改變了你的兩個建議。 地址欄之前沒有更改,因此我不確定當前發生了什么。 當我單擊立即搜索時,search_results div中什么也沒有顯示,並且地址欄更改為:

index.php?habbo_name = test&send =搜索

當前index.php:

<html>
<head>
  <title>Personnel Tracking System - E-3+</title>
  <link href="style.css" rel="stylesheet" type="text/css" media="screen" />
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

  <script language="JavaScript">
    function tS(){ x=new Date(tN().getUTCFullYear(),tN().getUTCMonth(),tN().getUTCDate(),tN().getUTCHours(),tN().getUTCMinutes(),tN().getUTCSeconds()); x.setTime(x.getTime()); return x; }
    function tN(){ return new Date(); }
    function lZ(x){ return (x>9)?x:'0'+x; }
    function y2(x){ x=(x<500)?x+1900:x; return String(x).substring(2,4) }
    function dT(){ if(fr==0){ fr=1; document.write('<font size=2 face=Arial color=white><b><span id="tP">'+eval(oT)+'</span></b></font>'); } document.getElementById('tP').innerHTML=eval(oT); setTimeout('dT()',1000); }
    var mN=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'),fr=0,oT="tS().getDate()+' '+mN[tS().getMonth()]+' '+y2(tS().getYear())+' '+':'+':'+' '+lZ(tS().getHours())+':'+lZ(tS().getMinutes())+':'+lZ(tS().getSeconds())+' '";
  </script>

  <script type="text/javascript">
    $(function() {
      $("#search_habbos").bind('submit',function() {
        $.post( "search_results.php", { value: $('#habbo_name').val() })
            .done(function( data ) {
              $("#search_results").html(data);
            });
        return false;
      });
    });
  </script>

</head>
<body>

<script>
  $(document).ready( function(){
    $.fn.snow();
  });
</script>

<div id="navbar">
  <img src="images/logo.png" style="position: absolute; top: 7px; left: 50px;" />
  <center>
    <img class="navbar" src="images/homebutton.png" />
    <img class="navbar" src="images/e-3button.png" />
    <img class="navbar" src="images/resignedbutton.png" />
    <img class="navbar" src="images/firedbutton.png" />
    <img class="navbar" src="images/desertersbutton.png" />
    <img class="navbar" src="images/mosrosterbutton.png" />
    <img src="images/divider.png" />
    <p><script language="JavaScript">dT();</script></p>
  </center>
</div>

<div id="search">
  <center>
    <b><p>Search</p></b>
    <form action="" id="search_habbos">
      <input type="text" name="habbo_name" id="habbo_name" size="30">
      <br>
      <input type="submit" value="Search" name="send" id="send">
    </form>
  </center>
  <div id="search_results"></div>
</div>

</html>

當前search_results.php:

<?php
    global $con;
        $habbo_name_final = '%'.$_POST['value'].'%';

        if (empty($_POST) === false) {
            global $con;
            $query = "SELECT * FROM `personnel` WHERE `habbo_name` LIKE :search ORDER BY `habbo_name`";
            $result = $con->prepare($query);
            $result->bindParam(':search', $habbo_name_final, PDO::PARAM_STR);
            $result->execute();

            while($row = $result->fetch()) {
                echo "<b>" . htmlspecialchars($row['status']) . ":</b> &nbsp" . htmlspecialchars($row['habbo_name']) . "</b> &nbsp" . htmlspecialchars($row['rank']) . "&nbsp" . htmlspecialchars($row['rating']) . "&nbsp" . htmlspecialchars($row['tag']) . "&nbsp" . htmlspecialchars($row['asts']) . "&nbsp" . htmlspecialchars($row['promotion_date']) . "&nbsp <b>" . htmlspecialchars($row['rdc_grade']) . "</b> &nbsp" . htmlspecialchars($row['medals']) . htmlspecialchars($row['transfer_rank_received']) . "&nbsp" . htmlspecialchars($row['cnl_trainings']) . "&nbsp" . htmlspecialchars($row['fired_reason']) . htmlspecialchars($row['desert_date']) . htmlspecialchars($row['quit_date']) . htmlspecialchars($row['fired_tag']) . "&nbsp" . htmlspecialchars($row['fired_date']) . "<br />";
            }
        } else {
            echo 'Enter a search term!';
        }   
        if (empty($row) == false) {
            echo "No results found";
        }
?>

我了解您打算做什么(mysql,變量中的plop等)。

PHP的第3行:

$habbo_name = '".$_POST['value']."'

首先 ,需要一個分號;

然后 ,將內部雙引號移到value附近。 從本質上講,這給$habbo_name一個精確的值".$_POST[ ,然后它出錯了,因為您過早地殺死了該表達式,PHP看到了value並翻轉出去。

已更正:

$habbo_name_final = '%' . $_POST["value"] . '%';

此處無需使用兩個變量。 一個就可以了。 這類似於我下面的答案,但他也不會解析,因為他像您在表達式上一樣早退。

編輯:

您的整個頁面看起來像是1998年以來的內容。有太多事情需要指出,因此我們跳過了。

要進行故障排除,請將整個AJAX表達式移到頁面末尾,然后嘗試使用此表達式而不是現在使用的表達式:

$('#search_habbos').bind('submit', function() {
    $.post('search_results.php', { value: $('#habbo_name').val() }, function( data ) {
        $('#search_results').prepend( data );
    });
});

而且我敢肯定你的SQL查詢需要兩個小' '秒。

"SELECT * FROM `personnel` WHERE `habbo_name` LIKE :search ORDER BY `habbo_name`";

需要是:

"SELECT * FROM `personnel` WHERE `habbo_name` LIKE ':search' ORDER BY `habbo_name`";

讓我們知道如何為您服務

使用頁面頂部的此新地址更新您的jquery鏈接

  <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>

在您的jQuery代碼中執行此操作

    $.post( "search_results.php", { value: $('#habbo_name').val() })
     .done(function( data ) {
          $("#search_results").html(data);
    });

不需要var value = $('#habbo_name')。val(); 並在您的PHP代碼中嘗試這個

  $habbo_name_final = '%'.$_POST['value'].'%';

不需要$ habbo_name變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM