使用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指出我正确的方向。这是我的输入字段:
<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 = JRequest::getVar('searchword');
此字符串中由逗号和空格分隔的单词然后通过爆炸放入数组中:
$this->keywords_array = explode(", ",$this->keywords);
然后将这组用户输入的单词与关键字的MYSQL数据库进行比较:
if ($keywords != "") $where_clause[] = ' s.keywords LIKE "%'.$this->keywords_array[0].'%" OR s.keywords LIKE "%'.$this->keywords_array[1].'%" ';
我对此解决方案的唯一问题是我的搜索仅限于keywords_array中的两个值。我想找到一种方法来将搜索中的值数设置为等于数组中的值的数量...
答案 0 :(得分:0)
我不确定你的“searchword”字符串的格式是什么,但如果我理解正确,你想在你的“searchword”字符串中建立多个关键字,然后传回给你getSearchword()函数。
为此,您可以使用javaScript在添加字符串时将新搜索词添加到字符串中。每次添加一个sear术语时,还要添加一个逗号来分隔它们。当您发送表单时,您的字符串将如下所示:
hello,world,foo,bar
所以你可以使用php中的explode()函数把它变成一个“搜索词”数组
$keywords_array = explode(",",$this->keywords);