用jquery在smarty模板上显示搜索结果
display search result with jquery on smarty template
我试图在smarty模板上显示<div>
的搜索结果。点击搜索结果。
锚点是:
<li class="price-list-item"><a href="javascript:void();" class="price" onclick="searchRange(0,1000)">0-1000</a></li>
和searchRange函数如下:
function searchRange(first, second) {
var first = first;
var second = (second != null) ? second : first;
$("#ad-display").load("index.php?first="+first+"&second="+second+" #ad-display");
}
用adlistdisplay.tpl
写的广告显示框看起来像这样:
<div id="ad-display">
<section id="add-list">
<ul id="ad-list">
{foreach from=$adverts key=k item=i name=ad_list}
<li class="ad-list-item-{cycle values="odd,even"}" id="ad-{$i.aid}">
<div class="ad-item-box">
<div class="ad-item-photo">
<a href="viewad.php?aid={$i.aid}"><img src="adimages/{$i.img}" width="80" height="80"></a>
</div>
<div class="ad-item-info">
<span class="ad-item-title"><a href="viewad.php?aid={$i.aid}">{$i.title}</a></span>
<span class="ad-item-desc">{$i.text|truncate:25}</span>
<span class="ad-item-price">Kr. {$i.price|number_format:2:",":"."}</span>
</div>
</div>
</li>
{/foreach}
</ul>
</section>
</div>
在我的index.php中有如下代码:
$adverts = new Adverts();
$smarty->assign('catlist', $adverts->getcategories());
SmartyPaginate::assign($smarty);
if(isset($_GET["first"])) {
$search = new SearchEngine();
$smarty->assign('adverts', $search->search_ads(null, "price", $_GET["first"], $_GET["second"]));
} else {
$smarty->assign('adverts', $adverts->listadverts());
}
$smarty->display('index.tpl');
索引。TPL包含以下内容:
{include file="adlistdisplay.tpl"}
当我点击顶部的锚点时,它只在#ad-display处显示一个空白点。无结果显示。我希望它显示search_ads函数的结果。它看起来像这样:
function search_ads($search_string = null, $type, $min_price = null, $max_price = null) {
global $db;
global $config;
switch($type) {
case "text":
$search = 'text LIKE "%'. $search_string .'%"';
break;
case "price":
$search = 'price > '. $min_price .' <= '. $max_price .'';
break;
case "headline":
$search = 'title LIKE "%'. $search_string .'%"';
break;
default:
$search = 'price BETWEEN '. $min_price .' AND '. $max_price .'';
break;
}
$row = $db->dbh->query('SELECT ad.*, (SELECT img.image FROM '.$config->db_prefix.'_images img WHERE img.aid = ad.aid LIMIT 1) AS img FROM '.$config->db_prefix.'_adverts ad WHERE '. $search .' AND ad.approved = 1');
$row->setFetchMode(PDO::FETCH_ASSOC);
return $row;
}
我创造了这个小提琴来展示我想要实现的目标。虽然有点不同,但却表明了我的意图。
http://jsfiddle.net/xeAkY/20/解决方案:
$search = 'price > '. $min_price .' AND price <= '. $max_price .'';
问题底部的解决方案
相关文章:
- 检查搜索结果是否存在多次如果是,则在Javascript中只显示一个结果
- 显示可链接的搜索结果+对齐方式
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 使用 jQuery UI 折叠面板显示 couchDB 数据库搜索结果时出现问题
- 如何将搜索结果显示为“搜索结果”;显示300〃中的1-10〃;
- 谷歌自定义搜索结果通过代理显示错误
- 搜索结果未显示在同一窗口中
- Javascript PHP在点击搜索时出现弹出图像,关闭图像后显示搜索结果
- 显示搜索结果
- 提示搜索不显示搜索结果
- 突出显示搜索结果在某些情况下不起作用
- 如何在覆盖中显示搜索结果页面
- 使用Angular显示搜索结果
- 在模态对话框中显示搜索结果
- 用Angular过滤器突出显示搜索结果,隐藏不匹配的文本
- 用jquery在smarty模板上显示搜索结果
- 如何显示搜索结果
- 在某些字符输入角度后显示搜索结果
- 使用angular.js和ui.utils突出显示搜索结果
- 显示搜索结果而不重新加载页面