【问题标题】:ajax php with category search带有类别搜索的ajax php
【发布时间】:2015-11-30 20:11:25
【问题描述】:

您好,我正在开发一个 ajax php 搜索。当有人键入时,它将在多个表中搜索数据库。我的问题是我需要它来显示一个名称,例如如果有人键入我希望它显示的名称 Apple tv 你想要类别还是特定产品?我该怎么做?

这是我目前所拥有的:

<?php
//Database values
$host = "localhost";
$dbname = "tool";
$user = "root";
$password = "root";
$database = new mysqli();

$database->connect($host, $user, $password, $dbname);

//Kill website if database connection fails
if($database->connect_errno) {
die("Database connection failed.");
}

//Connect to the database
//Clean user input
$search = $database->real_escape_string($_POST['search']);
$search = preg_replace("/[^A-Za-z0-9 ]/", '', $search);
$search = "'%".$_POST['search']."%'";

$query = "SELECT * FROM brands WHERE braname LIKE $search ORDER by braname ASC LIMIT 5";

if($results = $database->query($query)){
while ($player = $results->fetch_assoc()){
echo "<div class='col-sm-4' id='adjust-Searchbox'>" . "<a href=\"users/e-commerceTemplateSingleBrand.php?braid=".$player['braid']."\">" . "<p>" . $player["braname"] . "</p>" . "<img style='width:100%; height:50px;' src=\" uploads/".$player['braimg']."\">" . "</a>" . "</div>"

;
}
}else{
die("Database connection failed.");
}

$search = $database->real_escape_string($_POST['search']);
$search = preg_replace("/[^A-Za-z0-9 ]/", '', $search);
$search = "'%".$_POST['search']."%'";

$query = "SELECT * FROM Products WHERE name LIKE $search ORDER by name ASC LIMIT 5";

if($results = $database->query($query)){
while ($player = $results->fetch_assoc()){
echo "<div class='col-sm-4' id='adjust-Searchbox'>" . "<p>" . $player["name"] . "</p>" . "<img style='width:100%; height:50px;' src=\" uploads/".$player['proimg']."\">" . "</br>" . "</div>";
}
}else{
die("Database connection failed.");
}

【问题讨论】:

  • INPUT 表单项上使用onkeyup 方法向您的php 代码调用Ajax 请求,发送$_POST['search'] 中的搜索值,我建议在调用执行Ajax 调用的Javascript 函数时onkeyuponchange 你应该有一个一两秒的计时器,它会延迟 Ajax 调用的执行,这个时间应该在每次按下函数的新调用时重置,以避免过多的 Ajax 调用。
  • 我的搜索工作由你写一些东西,例如苹果电视。一旦用户键入它会问他们你的意思是类别还是产品。如果他们单击类别,它将提供该类别中的产品列表。如果是产品,那么它将显示该单个产品。

标签: php ajax search


【解决方案1】:

创建搜索文本字段

<input onkeyup="do_search();" type="text" value="" id="search_string">

然后添加你的javascript来调用ajax

function do_search() {
$('#the_div_to_show_ajax_return').html('Please wait ...');
$.ajax({
type: "POST",
url: "yourcode.php",
data: {search: $('#search_string').val()}
})
.done(function( msg ) {
    $('#the_div_to_show_ajax_return').html(msg);
});
}

还要确保为结果准备好 div

<div id="the_div_to_show_ajax_return"></div>

【讨论】:

  • 谢谢,现在我同时得到三个结果。我如何让它只显示一个结果而不是两个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
相关资源
最近更新 更多