2013-03-13 34 views
0

我試圖在smarty模板上的<div>中顯示搜索結果。 搜索結果來自點擊。在smarty模板上顯示jquery的搜索結果

錨是這樣的:

<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'); 

index.tpl裏包含此:

{include file="adlistdisplay.tpl"} 

當我點擊頂部的錨,它只是顯示在#的廣告顯示一個空白點。沒有顯示結果。 我希望它顯示來自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/

SOLUTION:

$search = 'price > '. $min_price .' AND price <= '. $max_price .''; 
+1

有很多可怕的代碼,我們涉水通過的底部這裏。你有沒有嘗試過簡化你的問題,所以錯誤可能不是那麼多? – IMSoP 2013-03-13 20:11:38

+0

我同意。你的問題似乎隱藏在太多的信息後面。您可以使用[jquerys加載函數](http://api.jquery.com/load/)獲取數據。你調試過,如果你的服務器發回你一些數據(p.e.與螢火蟲或類似的東西)? – Bjoern 2013-03-14 05:24:27

+0

對不起,關於代碼 - 我想我會提供儘可能多的連接代碼。 我相信問題是在搜索結果和加載到div之間的某處。它確實將參數傳遞給搜索功能。 – 2013-03-14 08:41:19

回答

0

解決方案張貼在這個問題