使用1.7,獲取從以逗號分隔的輸入字段陣列 - 的Joomla 1.7
現在我有這樣的:
<input type="text" name="searchword" class="keyword_search_input" size="32" maxlength="255" value="<? echo JRequest::getString('searchword'); ?>" placeholder="<? echo JText::_('Keyword(s)'); ?>"/><br />
但是我希望把用空格或逗號分隔的關鍵字到一個數組將傳遞到這一點:
$this->keywords = JRequest::getVar('searchword');
if ($keywords != "") $where_clause[] = ' s.keywords LIKE "%'.$keywords.'%"';
function getSearchword(){
return $this->keywords;
}
任何幫助,將不勝感激......
尼克
更新:
我已經想通了。感謝@travega指引我朝着正確的方向前進。這裏是我的輸入字段:
$this->keywords = JRequest::getVar('searchword');
這個詞在此字符串由逗號和空格分隔然後:
<input type="text" name="searchword" class="keyword_search_input" size="32" maxlength="255" value="<? echo JRequest::getString('searchword'); ?>" placeholder="<? echo JText::_('Keyword(s)'); ?>"/><br />
這在我Controller.php這樣傳遞一個字符串的構造函數通過放置到一個數組爆炸:
$this->keywords_array = explode(", ",$this->keywords);
的用戶inputed話這個數組然後比較關鍵字的MySQL數據庫:
if ($keywords != "") $where_clause[] = ' s.keywords LIKE "%'.$this->keywords_array[0].'%" OR s.keywords LIKE "%'.$this->keywords_array[1].'%" ';
我對這個解決方案的唯一問題是我的搜索僅限於keyword_array中的兩個值。我想找到一種方法來設置搜索值的數量等於數組中的值的數量...
兩個問題的數組:1 。你能指點我一個JS功能來做到這一點嗎? 2.如何修改$ where_clause來搜索數組中的所有單詞? – 2012-01-18 17:36:03
1.這取決於你的頁面是如何工作的。但是如果你的用戶輸入一個字符串,如「我的名字是bob」並提交表單,那麼處理搜索字符串會更容易,因爲你可以在空白處「爆炸」字符串,例如爆炸(「」,$關鍵字);.爲此,你不需要任何JS來建立你的字符串。否則,如果您的用戶在多次迭代中輸入關鍵字,那麼您可以使用jQuery來執行:$(「#foo」)。val();獲取「foo」是您輸入元素的ID的值。然後看看將值添加到一個隱藏的輸入字段中,並(在下一個評論中繼續...) – travega 2012-01-19 00:58:03
1.(contd ...)使用類似於:$(「#hiddenFoo」)。val($(「#hiddenFoo」 ).val()+「,」+ $(「#foo」)。val());將值附加到隱藏的輸入字段。 – travega 2012-01-19 01:00:40