function search_menu() {
$items['key_search'] = array(
'title' => t('Поиск'),
'page callback' => 'search',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function search($sword=''){
$output= drupal_get_form ('ats_search_form',$sword);
return $output;
}
//обработка нажатия клавиши
function ats_search_form_submit($form, &$form_state) {
$name = $form_state['values']['search_word'];
$form_state['redirect'] = $base_path.'key_search/'.$name;
}
// форма поиска
function ats_search_form($context, $word) {
$form['search_word'] = array(
'#value' => $word,
'#type' => 'textfield',
'#description' => t('Введите ключевое слово для поиска.'),
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('найти')
);
в результате выполнения модуля страница поиска должна была переадресовывать на саму себя с передачей параметра из текстового поля. Полученный параметр заново отображать в текстовом поле..
но в итоге она при смете значения текстового поля продолжает переадресовывать по старому значению..
что надо подправить?
Комментарии
Слишком много ошибок...
Может стоит посмотреть, как в ядре формы делаются? например тот же поиск
http://api.drupal.ru/api/file/developer/examples/node_example.module/6
да вроде все по книге..
только там вместо редиректа была функция drupal_set_message, да работа с базой..
В функцию t() нельзя писать русские буквы НЕЛЬЗЯ!!!!!!!
Рекомендации изучать основы php с самого начала.
смотреть на код модулей которые вы ставите, поверьте модули пишут не только англичане и америкосы, но вы нигде не найдете в коде модулей польского, чешского, немецкого языка, так чем же русский лучше?
В функцию t() нельзя писать русские буквы НЕЛЬЗЯ!!!!!!!
- сначала я хотел бы написать работоспособный код а потом уже заняться нормальным переводом интерфейса на английский и созданием файла руссификации..
Да бл... сколько можно объяснять основы программирования, вы же не называете переменные $василий так вот то что вы вписываете в кавычках в функцию t() это параметр!!!!!! пусть строковый но параметр.
он принимается к обработке другими функциями он должен быть написан хотя бы ЛАТИНИЦЕЙ но никак не русскими буквами. Окуда взяться работоспособному коду если вы его заблаговременно пишите ошибочно.
прежде чем писать и пользоваться посмотрите на код который выполняет функция t() и поймите принцип ее работы.
я знаю ее принцип.. не убираю я t() что бы потом легче находить строки для перевода..
это не критичная ошибка.. и никак не сказывается на результате частного кода..
но если это вызывает такой спор - я его переписал..
function search_menu() {
$items['key_search'] = array(
'title' => 'Поиск',
'page callback' => 'search',
'access callback' => TRUE,
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function search($sword=''){
$output=drupal_get_form ('ats_search_form',$sword);
return $output;
}
//обработка нажатия клавиши
function ats_search_form_submit($form, &$form_state) {
$name = $form_state['values']['search_word'];
$form_state['redirect'] = $base_path.'key_search/'.$name;
}
// форма поиска
function ats_search_form($context, $word) {
$form['search_word'] = array(
'#value' => $word,
'#type' => 'textfield',
'#description' => 'Введите ключевое слово для поиска.',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'найти'
);
как простым способом без написания тысячи строк присвоить текстовому полю значение но так что бы его можно было потом изменить и обработать после изменения?
Вот тут вот что-то не так. Может так попробуйте:
вместо
спасибо..