Александр Д.
676 сообщений
#12 лет назад
У меня под каждой страницей вакансии есть форма обратной связи в автором вакансии.
Но изначально поле с адресом получателя пустое. Я с помощью ссылки

<a href="?job=***">Написать письмо</a>


передаю параметр с адресом почты. Все отлично, работает. Но если пользователь не кликнет по ссылке "Написать письмо", а сразу перейдет к форме, то в итоге сообщение никуда не отправится, т.к. поле получателя будет пустое.

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

<a class="hideBtn" href="?job=***" onclick="$('#hideCont1').slideToggle('normal');return false;">Показать скрытую форму</a>

<div style="display:none;" id="hideCont1" class="hideCont">
Скрытая форма
</div>
Елена Б.
6863 сообщения
#12 лет назад
Штаны через голову...
Не работает, потому что onclick="$('#hideCont1'.slideToggle('normal';return false;" предотвращает переход по ссылке.
И вообще, такой кривой велосипед себе представить сложно. Что мешает передать адрес в скрытом инпуте?
Александр Д.
676 сообщений
#12 лет назад
Проблема в том, что я не знаю как автоматически подставить адрес получателя, а только через передачу параметра GET
Александр Д.
676 сообщений
#12 лет назад
Можно сделать форму обратной связи на отдельной странице и передавать адрес через параметр. Но хотелось бы форму на странице материала иметь
Елена Б.
6863 сообщения
#12 лет назад
Цитата ("Bob301"):
Проблема в том, что я не знаю как автоматически подставить адрес получателя, а только через передачу параметра GET

Простите... это звучит очень странно... А форму вы как используете???
Александр Д.
676 сообщений
#12 лет назад
В каком смысле как я использую?
Елена Б.
6863 сообщения
#12 лет назад
Bob301,

<a href="?job=***">Написать письмо</a> -- $_GET
<input type="hidden" name="job" value="***"> -- $_POST или $_GET, в зависимости от метода формы.


Не?
Александр Д.
676 сообщений
#12 лет назад
На Drupal это просто так не сделаешь
Александр Д.
676 сообщений
#12 лет назад
Пробовал с помощью функции подставлять значение.

function mymodule_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'webform_client_form_8') {
if ($node = menu_get_object()) {
$form = $node->field_email;
}
}
}


Значение прекрасно подставляется, но после отправки получаю ошибку

Цитата:
Notice: Undefined property: stdClass::$field_email в функции mymodule_form_alter() (строка 6 в файле Z:\home\iglan\www\sites\all\modules\mymodule\mymodule.module).


и в итоге ничего не отправляется
Василий С.
402 сообщения
#12 лет назад
$('input'.val('***';
ну в качестве костыля, вставить в любом месте
Елена Б.
6863 сообщения
#12 лет назад
Bob301, редирект при загрузке страницы делать по адресу ссылки )))))))))))))))))) Да здравствует говнокод!
Тока помидоры не кидайте
Александр Д.
676 сообщений
#12 лет назад
Цитата ("tarakan_"):
$('input'.val('***';
ну в качестве костыля, вставить в любом месте


Что-то я не понял как это работает

У меня вот такой вид поля

<input id="edit-submitted-email-author--4" class="email form-text form-email required" type="email" size="60" name="submitted">
Александр Д.
676 сообщений
#12 лет назад
Цитата ("floppox"):
Bob301, редирект при загрузке страницы делать по адресу ссылки )))))))))))))))))) Да здравствует говнокод!
Тока помидоры не кидайте

Не понял смысл вашего продложения
Елена Б.
6863 сообщения
#12 лет назад
Это поле для ввода эмейла пользователем. Вам надо подставить значение в него?
Елена Б.
6863 сообщения
#12 лет назад
Bob301, мое "продложение" в том, чтоб перезагрузить страницу с вашим параметром так, словно ссылка нажата, посредством такой конструкции
document.location.href = document.location.href + '?job=***';

Вот только делать так НЕ НАДО
Василий С.
402 сообщения
#12 лет назад
Цитата ("Bob301"):

У меня вот такой вид поля

<input id="edit-submitted-email-author--4" class="email form-text form-email required" type="email" size="60" name="submitted">


тогда так:
$('.email'.val('***';
Елена Б.
6863 сообщения
#12 лет назад
tarakan_, подозреваю, что это совсем не то поле.
Василий С.
402 сообщения
#12 лет назад
Почему не то? ну можно еще так:
$('input'.val('***';
Александр Д.
676 сообщений
#12 лет назад
Объясняю. Есть раздел Вакансии. В форме добавления вакансии посетитель заполняет свой email. Нужно этот e-mail подставить в одно из полей формы.

Под каждой вакансией выводиться форма обратной связи.
По умолчанию в форме не предусмотрено токенов, которые могут брать значение из вакансии и подставлять в поле получателя.
Есть только возможность использовать значение из поля формы как адрес получателя.
То-есть я в форме создал поле "email_author" на которое и отправляются сообщения.

Через <a href="?job=***">Написать письмо</a> я подставляю email с вакансии
Елена Б.
6863 сообщения
#12 лет назад
КУДА вы его подставляете?