Получить массив из поля ввода, разделенных запятыми - Joomla 1.7 - PullRequest
0 голосов
/ 18 января 2012

Используя 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;

    }

Любая помощь будет оценена ...

Ник

UPDATE:

Я понял это. Спасибо @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. Я хотел бы найти способ установить количество значений в поиске равным количеству значений в массиве ...

1 Ответ

0 голосов
/ 18 января 2012

Я не уверен, в каком формате будет строка «searchword», но если я правильно понимаю, вы хотите, чтобы в вашей строке «searchword» было создано несколько ключевых слов, которые затем были переданы вам обратно в функцию getSearchword ().

Для этого вы можете использовать javaScript для добавления новых поисковых слов в вашу строку по мере их добавления.Каждый раз, когда вы добавляете поисковый термин, также добавляйте запятую, чтобы отделить их.Когда вы отправляете форму, ваша строка будет выглядеть следующим образом:

hello,world,foo,bar

, поэтому вы можете использовать функцию explode () в php, чтобы превратить ее в массив «поисковых слов»

$keywords_array = explode(",",$this->keywords);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...