Arrays 从由逗号分隔的输入字段获取数组-Joomla 1.7

Arrays 从由逗号分隔的输入字段获取数组-Joomla 1.7,arrays,input,joomla,Arrays,Input,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 /> 任何帮助都将不胜

使用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 />
任何帮助都将不胜感激

尼克

更新:

我已经弄明白了。感谢@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 />
该字符串中由逗号和空格分隔的单词随后通过分解放置到数组中:

$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].'%"  ';

这个解决方案的唯一问题是,我的搜索限制为关键字数组中的两个值。我想找到一种方法,将搜索中的值数设置为数组中的值数…

我不确定“searchword”字符串的格式,但如果我理解正确,您希望在“searchword”字符串中建立多个关键字,然后将其传递回getSearchword()函数

为此,您可以使用javaScript在添加新的搜索词时将其附加到字符串中。每次添加一个sear术语时,也会添加一个逗号来分隔它们。当您发送表单时,字符串将按如下方式到达:

hello,world,foo,bar
因此,您可以在php中使用explode()函数将其转换为“searchwords”数组


两个问题:1.你能给我指一个JS函数来做这个吗?2.如何修改$where_子句以搜索数组中的所有单个单词?1。这将取决于你的页面如何工作。但是如果您的用户输入一个字符串,比如“我的名字是bob”,然后提交表单,那么处理搜索字符串就会更容易,因为您可以在空白处“分解”字符串,即分解(“,$keywords);。为此,您不需要任何JS来构建字符串。否则,如果用户在多次迭代中输入关键字,则可以使用jQuery执行:$(“#foo”).val();获取值,其中“foo”是输入元素的ID。然后查看将值添加到隐藏的输入字段,并(在下一个注释中继续)1.(续…)使用类似于:$(“#hiddenFoo”).val($(“#hiddenFoo”).val()+,“+$(#foo”).val();将值附加到隐藏的输入字段。2。是否真的需要将所有单词存储在一个数组中?关键词列表不太可能增长吗??如果是这样,我建议改用MySQL数据库查找。如果必须使用静态数组,则必须在循环中通过关键字嵌套where循环,对于关键字数组中的每个值,必须迭代搜索词数组中的每个值,并检查它们是否相等。绝对不是一个可扩展的解决方案,但如果出于任何原因它们是您的限制,那么就这样吧。是的,您当然是对的。输入关键字不会与关键字数组进行比较,而是与关键字数据库进行比较。谢谢
if ($keywords != "") $where_clause[] = ' s.keywords LIKE "%'.$this->keywords_array[0].'%" OR s.keywords LIKE "%'.$this->keywords_array[1].'%"  ';
hello,world,foo,bar
$keywords_array = explode(",",$this->keywords);