Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 23.05.2016, 16:31   #1
ВКШ
 
Регистрация: 23.05.2016
Сообщений: 3
Репутация: 10
По умолчанию Совмещение разметки HTML и javascript

Здравствуйте!
Прошу помощи. Какая-то техническая "закавыка", в силу неопытности не могу найти, в чем дело.
Решаю вот какую задачу:
Посетитель сайта заполняет форму опроса. Нажимает на кнопку "Узнать результат". В ответ ему появляется модальное окно с описанием его результата.
Это описание результата в модальном окне заканчивается предложением посетителю ввести свой email (тут же, в этом же модальном окне) и тут же, в этом же модальном окне нажать на кнопку "Отправить".
То есть получается, что в javascript я вписываю html-форму, которая должна принять e-mail посетителя и обеспечить обращение к файлу php (к файлу sec_3.php).
Похоже, у меня какая-то проблема с синтаксисом этой конструкции. Перепробовал все пришедшие в голову варианты - решения найти не сумел.
Может, Вы поможете.
Не получается сделать так, чтобы введенный пользователем адрес (email1) передался в функцию sendmail.

Вот кусок javascript -кода модального окна:

Код:
....
var answerText="Бла-бла-бла";
....
if (score > 0){
answerText=answerText+"<br/><br/>Если хотите получить копии ваших ответов – введите свои координаты.<br/><br/>";
answerText=answerText+"<form action='#' method='post'><label>Ваш Email: </label><input type='text' name='email1'/>";
answerText=answerText+"<br/><br/><br/><input type='submit' onClick='" +sendmail(+ "email1," + message2)+ "' value='Отправить' name='basic' class='contact-button' /></form>";
};

....
function sendmail(email1, message2) {
$.post('sec_3.php', {email2:email1, name2:message2});
};
PHP код:

---В файле sec_3.php такой текст:
<?php 

    $headers 
'MIME-Version: 1.0' "\r\n" 'Content-type: text/html; charset=utf-8' "\r\n";
    
$subject 'ВАШИ ОТВЕТЫ НА ОПРОС ...';
    
$to=$_POST["email2"];
    
$message$_POST["name2"];/**/
    
mail($to'=?windows-1251?B?'.base64_encode($subject).'?='$message$headers);
?>

Последний раз редактировалось Вадим Мошев; 23.05.2016 в 21:57.
ВКШ вне форума   Ответить с цитированием
Старый 23.05.2016, 22:04   #2
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: programmersforum
Сообщений: 8,486
Репутация: 4056
По умолчанию

Бегло прочитал тему и код. Никогда ранее не приходилось мне отправлять письма посредством php.

Бросилось в глаза это:
Код:
answerText=answerText+"<br/><br/>Если хотите получить копии ваших ответов – введите свои координаты.<br/><br/>";
answerText=answerText+"<form action='#' method='post'><label>Ваш Email: </label><input type='text' name='email1'/>";
answerText=answerText+"<br/><br/><br/><input type='submit' onClick='" +sendmail(+ "email1," + message2)+ "' value='Отправить' name='basic' class='contact-button' /></form>";
};
Я так полагаю, вы хотите дополнить переменную answerText на каждом последующем шаге? Но вы её затираете, а не дополняете.
Используйте оператор +=
То есть, вы должны написать:
answerText = НАЧАЛЬНОЕ_ЗНАЧЕНИЕ;
answerText += ДОБАВЛЯЕМОЕ_ЗНАЧЕНИЕ;
answerText += ЕЩЁ_РАЗ_ДОБАВЛЯЕМОЕ_ЗНАЧЕНИЕ;

Оператор += позволяет сократить запись V = V + someThing;
Конструкции
Код:
 V = V + someThing
И
Код:
V += someThing
- эквивалентны.
Вадим Мошев на форуме   Ответить с цитированием
Старый 23.05.2016, 23:36   #3
ВКШ
 
Регистрация: 23.05.2016
Сообщений: 3
Репутация: 10
По умолчанию

Вадим, в любом случае, спасибо, что посмотрели мой вопрос и отозвались.

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Бегло прочитал тему и код. Никогда ранее не приходилось мне отправлять письма посредством php.
Странно. Я полагал до сих пор, что php типично использовать для проверки и отправки результатов заполнения контактной формы (и не только).
Но, в общем-то, мой вопрос был не совсем об этом.

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Бросилось в глаза это:..
Спасибо за совет по оператору+= .
Попробую его использовать в будущем. Так действительно немного короче.
Переменная в моем варианте написания (типа: answerText=answerText+"...") не затирается, а дописывается. Проверено много раз!
Но, в общем-то, мой вопрос был и не совсем об этом.


Я просил помощи (совета), как сделать так, чтобы было возможно передать переменную (email1) из заполненной формы в функцию sendmail (javascript).

(может быть, мне следовало бы в самом первом посте сказать, что весь этот код - часть скрипта javascript - ??? ну, разумеется, кроме файла sec_3.php, который просто отдельный php файл)

Последний раз редактировалось ВКШ; 23.05.2016 в 23:40.
ВКШ вне форума   Ответить с цитированием
Старый 24.05.2016, 00:21   #4
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: programmersforum
Сообщений: 8,486
Репутация: 4056
По умолчанию

Цитата:
Странно. Я полагал до сих пор, что php типично использовать для проверки и отправки результатов заполнения контактной формы (и не только).
Я ничего не говорил против php.
Цитата:
Переменная в моем варианте написания (типа: answerText=answerText+"...") не затирается, а дописывается. Проверено много раз!
Да. Я не углядел.

Цитата:
Я просил помощи (совета), как сделать так, чтобы было возможно передать переменную (email1) из заполненной формы в функцию sendmail (javascript).
Допустим, передача осуществляется кнопкой с id="myButton", а e-mail находится в поле с id="myMail". Тогда

Код:
document.getElementById('myButton').onclick = function() {
	var email1 = document.getElementById('myMail').value;

	sendmail(/*вызываем вашу функцию и передаём аргументы*/)
};
или с применением jQuery:

Код:
$('#myButton').on('click', function() {
	var email1 = $('#myMail').val();

	sendmail(/*вызываем вашу функцию и передаём аргументы*/)
});
Вадим Мошев на форуме   Ответить с цитированием
Старый 24.05.2016, 03:55   #5
ВКШ
 
Регистрация: 23.05.2016
Сообщений: 3
Репутация: 10
По умолчанию

Спасибо!
ВКШ вне форума   Ответить с цитированием
Старый 25.05.2016, 06:57   #6
dzonn
Новичок
 
Регистрация: 25.05.2016
Сообщений: 2
Репутация: 10
По умолчанию

помогите с java пжл
dzonn вне форума   Ответить с цитированием
Старый 25.05.2016, 22:03   #7
Вадим Мошев

Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: programmersforum
Сообщений: 8,486
Репутация: 4056
По умолчанию

Javascript и Java - Это вообще разные языки программирования, хоть и с похожим синтаксисом, я бы сказал, что у них нет ничего общего.

С Java я помочь не смогу, так как не знаю этот язык. Вам надо создать свою тему в этом разделе: http://www.programmersforum.ru/forumdisplay.php?f=10.
Я подчёркиваю, создать свою тему, а не писать в чужие темы со своими вопросами - это очень не любят.
Вадим Мошев на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript, HTML nastjamihneva JavaScript, Ajax 2 29.03.2014 12:45
интерпретатор для подмножества языка разметки гипертекста HTML JavScr Общие вопросы Delphi 9 20.01.2014 19:40
HTML+JavaScript lilywka Помощь студентам 1 08.04.2013 21:35
Совмещение цикла php и javascript alimov7 Помощь студентам 0 06.11.2012 17:41
html проблема разметки world12_tk HTML и CSS 2 22.09.2010 20:27


20:55.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.