[英]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>  " . htmlspecialchars($row['habbo_name']) . "</b>  " . htmlspecialchars($row['rank']) . " " . htmlspecialchars($row['rating']) . " " . htmlspecialchars($row['tag']) . " " . htmlspecialchars($row['asts']) . " " . htmlspecialchars($row['promotion_date']) . "  <b>" . htmlspecialchars($row['rdc_grade']) . "</b>  " . htmlspecialchars($row['medals']) . htmlspecialchars($row['transfer_rank_received']) . " " . htmlspecialchars($row['cnl_trainings']) . " " . htmlspecialchars($row['fired_reason']) . htmlspecialchars($row['desert_date']) . htmlspecialchars($row['quit_date']) . htmlspecialchars($row['fired_tag']) . " " . 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.