2011-09-08 71 views
-2

我的腳本存在邏輯問題。問題的關鍵是要在表中格式化一些行,但不應該重複標題,並且應該輸出所有項目,並將其作爲變量傳遞給ajax。但我看不出如何解決這個問題。構建php對ajax的響應

function abc() 
    { 
     global $mainframe; 

     $db  =& JFactory::getDBO(); 

     // Check for request forgeries 
     if(isset($this->message)){ 
       $this->display('message'); 
    } 
       // custom: generate token for ajax request 
         $ajax_token = JHTML::_('ajax.token'); 
          // custom end 

//  JRequest::checkToken('get') or jexit('Invalid Token'); 



     $letter_raw = JRequest::getVar('val'); 
     $letter = substr($letter_raw, -1); 
     $response = '<div class="no-rec">not found</div>'; 
     $html = ''; 
     if (!empty($letter)) { 
     $query = " SELECT * FROM #__glossary WHERE substr(tterm,1,1) LIKE '$letter%'"; 

     $db->setQuery($query); 

     $rows = $db->loadObjectList(); 


     if (count($rows)) { 

     $header='<table class="stripeMe"><tbody><thead><tr><th>Begriff</th><th>Definition</th></tr></thead><tr>'; 

     foreach($rows as $key => $row) { 

     $body='<td><span class="title">'.$rows[$key]->tterm.'</span></td><td>'.$rows[$key]->tdefinition.'</td></tr></tbody></table>'; 

     } 

     $response = $header.$body; 


     } 

     $html = $response; 

     echo $html; 




     } 



    } 

回答

1

究竟是什麼問題? :)

你應該proberbly不使它的功能,因爲我想你只是要加載與AJAX的內容?

而且你應該添加到字符串不會覆蓋每一行。

更新固定的HTML錯誤

if (count($rows)) { 
    // CREATE TABLE AND HEAD 
    $body = '<table class="stripeMe"><thead><tr><th>Begriff</th><th>Definition</th></tr></thead>'; 

    // TBODY FOR REPEAT INSIDE 
    $body .= '<tbody>' 
    foreach($rows as $key => $row) { 
    $body .= '<tr><td><span class="title">'.$rows[$key]->tterm.'</span></td><td>'.$rows[$key]->tdefinition.'</td></tr>'; 
    } 
    $body .= '</tbody></table>'; 

    $response = $body; 
    } 

    $html = $response; 

    echo $html; 
+0

是的,它應該被加載爲ajax響應。您的代碼確實符合我的期望,但第一個元素位於表格標籤之間,並且下列項目正在打破。 – deroccha

+0

非常感謝!這是它 – deroccha

0

那麼如果你是將數據送回作爲HTML比這將工作,所以你的jQuery是:

$('#holderdiv').load('abc.php'); 

如果你正在使用如.post .ajax .get,那麼您需要決定將數據傳回的格式,所以如果是JSON,則需要格式化它,並確保您的jQuery被期望得到這樣的響應。如果您可以具體瞭解您的情況以及您遇到什麼問題,我可以給予更多幫助。

+0

如果我明白你的意見,我建議我發回jquery ajax的查詢結果和格式與它 – deroccha

+0

沒有格式與PHP然後發回到jQuery,只要確保你使用.load(),如果你去做。如果你使用.post或.get或.ajax,那麼你可以做其他的事情 –