大家好,我是使用 jQuery 的新手,我想将 AJAX 功能用于我的网站的搜索功能。但是,我在学习这一点时遇到了一些困难,因为我只能找到使用与函数无关的 PHP 的示例。我目前正在尝试从这个 youtube 示例jQuery Youtube Example中学习。然而,这似乎很难实现。
关于我想要实现的一点点。我想在我的搜索栏中输入邮政编码并让它检索所有使用 AJAX 匹配的相关数据字段,以便它显示在搜索栏正下方的 div 中。
由于我对 jQuery 不是很熟悉,我不确定我是否以正确的方式进行此操作,任何输入都将受到热烈欢迎。先感谢您!
我的代码就是这样
索引.php
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/ajax.js"></script>
<?php include("header.php");
$houseobject = new House();
$houseobject->search($_POST['term']);?>
<div id="mainContent">
<div id="searchformWrap">
<br/><h2>Search for Accomodation</h2>
<div id="searchform"><br/><br/><br/>
<form method="post" action="index.php" name="search" id="search_form">
<div class="searchrow">
<div class="searchlabel">Location</div>
<div class="searchinput">
<input type="text" name="term" id="term" />
<input type="submit" name="submit" id="searchsubmit" value="Search"/>
</form>
<div class="help">e.g. 'PO5' or 'Portsmouth'</div>
</div> <!-- end input -->
</div> <!-- end .row -->
<div id="searchquery"> </div>
</div> <!-- End maincontent -->
类/class.House.inc
<?php
include ("connect.class.Database.inc");
class House extends Database {
public function search ($term){
$query = "SELECT * FROM houses
WHERE postcode like '%".$this->mysqli->real_escape_string($term)."%'";
$result = $this->mysqli->query($query);
$num_result = $result->num_rows;
if($num_result > 0){
while($rows =$result->fetch_assoc()) {
$this->data[]=$rows;
//print_r($rows);
}
return $this->data;
} else{
echo 'No Records Found';
}
echo json_encode($data);
}
}
js/ajax.js
$('input#searchsubmit').on('click', function() {
if ($.trim(term) != '') {
$.post('classes/class.House.inc', {term: term}, function(data) {
$('div#searchquery').text(data);
});
}
});
}
我通常通过将 index.php 上的表单指向...来获取结果
搜索.php
<table width="500" border="1" cellpadding="5">
<tr>
<th width="16" scope="row">id</th>
<td width="95">bedrooms</td>
<td width="140">description</td>
<td width="104">roadname</td>
<td width="71">postcode</td>
</tr>
<?php
require("classes/class.House.inc");
$obj = new House();
if ($data = $obj->search($_POST['term']))
{
foreach($obj->data as $val){
extract($val);
}
}
?>
<tr>
<td scope="row"><?php echo $id; ?></td>
<td><?php echo $bedrooms; ?></td>
<td><?php echo $description; ?></td>
<td><?php echo $roadname; ?></td>
<td><?php echo $postcode; ?></td>
</tr>
</table>