Как сделать форму самореференции в Drupal? Или есть другие варианты? - PullRequest
1 голос
/ 23 ноября 2011

Я хотел бы сделать форму, которую я имею на моем веб-сайте, ссылающуюся на себя. Или, если это не вариант, как мне, например, показать результаты поиска, который я делаю на моем сайте?

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 ноября 2011

Вы должны перенаправить форму на страницу, передав строку запроса со строкой того, что пользователь искал, а затем использовать $ _GET ['search_param'] на странице поиска / перезапуска для обработки того, что будет отображаться пользователю.

function yourform_form($form_state) {
    $form = array();
    //$form['your_search_field']
    $form['#submit'][] = 'yourform_form_submit';
    return $form;
}

function yourform_form_submit(&$form, $form_state) {
    $query = 'search_param='. $form_state['values']['your_search_field'];
    drupal_goto('search/results', query);
}

Если вы используете Drupal 7, ваша функция отправки должна выглядеть следующим образом:

 function yourform_form_submit(&$form, $form_state) {
        $options['query']['search_param'] = $form_state['values']['your_search_field'];
        drupal_goto('search/results', $options);
    }

После отправки вы должны быть перенаправлены на http://yoursite.com/search/results?search_param=my_search_value

Обратите внимание, что эта техника используется популярными поисковыми системами:

https://www.google.com/search?q=my_search_value

0 голосов
/ 23 ноября 2011

Ваша форма должна содержать $form['#action'], чтобы привести вас к конкретной странице после отправки:

function example_form($form_state) {
    $form = array();
    //your form code
    //...
    $form['#action'] = url('search/results');
    return $form;
}

При отправке формы (example_form_submit) вы должны взять все свои значения и сохранить их в куки, используя функцию user_cookie_save, и на своей странице вы можете использовать эти куки. Вы также можете serialize ваши значения иметь дело только с одним cookie, если хотите, а затем unserialize их на своей странице. Вы можете удалить cookie, используя функцию user_cookie_delete.

Вы должны определить путь search/results, где вы можете взять эти файлы cookie и манипулировать ими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...