Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перебор опцй(checkbox) и отправка почты, выбор кому и затем отправка 
:(
    Опции темы
Андрей СС
Дата 5.11.2004, 18:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Всем приветики.
Я программист на Perl, а тут судьба, а именно одно из первых заданий на работе, столкнуло с Явой.
Передо мной стоит следующее задание.
Нужно чтобы было так.

Имеем текстовый фаил с почтовыми адресами. Но грузить вас не буду.
Смысл такой, когда все из перла выводится в чистый HTML, то получается HTML фаил, содержащий:

<input type=checkbox name=id1 [email protected]> 1. email адрес номер один /*value у формы равно: [email protected] */
<input type=checkbox name=id2 [email protected] > 2. email адрес номер два /*value у формы равно: [email protected] */
<input type=checkbox name=id3 [email protected] > 3. email адрес номер три /*value у формы равно: [email protected] */

<input type=checkbox value=all> Отправить всем
И кнопка сабмит ессно.

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

Смысл такой, ему нужно отправить письмо адрессату номер один, он ставит галочку напротив первого адреса, нажимает отправить, и выскакиевает аутлук с введеным в поле кому (ну стандартный mailto:... ) адресом.
Однако если он поставил 2 галочки, то выскочит "создать сообщение" и введено 2 адреса.
Еще если поставить галочку "все", то выделится все три и выполнятся соответствующие действия.
Так вот, не могли бы вы мне помочь, либо исходником каким, либо наваять тут скриптик этот. Просто очень нужно все это в ближайшие 2-3 дня.
Умоляю помогите. В долгу не останусь - будет надобность помогу с Perl'ом.
Заранее благодарен. С нетерпением жду ответа.
  Вверх
Fearless
Дата 6.11.2004, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 2.9.2004
Где: Питер

Репутация: нет
Всего: 4



я думаю это то что надо ....... протестил в mozilla + почта мозиловская , IE + (отглюк 2003 и Express ) , Konqueror + Kmail (в этом варианте мне больше всех понравилось всётаки грамотно работает Kmail в очередной раз в этом убедился а грамотность заключается в отсутствие надписи mailto: которая везде присутствовала до некоторых изменений в скрипт )


Код

<html>
<body>
<script language="javascript">
function check_all(param) {
for (i=1; i < 4; i++){
document.getElementById("id"+i).checked=param;
}
}

function string_mail() {
s=""
    for (i=1; i < 4; i++){
      if (document.getElementById("id"+i).checked){
      s = document.getElementById("id"+i).value + "; " + s;
    }
}
return document.getElementById("send").href="mailto: "  + s;
}

</script>

<input type="checkbox" name="e1" id="id1" value="[email protected]" > 1. email адрес номер один<br>
<input type="checkbox" name="e2" id="id2" value="[email protected]" > 2. email адрес номер два <br>
<input type="checkbox" name="e3" id="id3" value="[email protected]" > 3. email адрес номер три <br><br>


<input type="checkbox" onclick="check_all(this.checked);"> Отправить всем <br><br>
<a id="send" href="" onclick="string_mail();">  ОТПРАВИТЬ  </a>
 </body>
</html>


Это сообщение отредактировал(а) Fearless - 6.11.2004, 21:21
PM MAIL ICQ   Вверх
Андрей СС
Дата 6.11.2004, 22:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Друг, ОГРОМНОЕ тебе СПАСИБО!
Я говорил, что в долгу не останусь и обязательно отблагодарю.
У меня к тебе еще тогда вопросик, если тебе не сложно, конечно.
Я так понял параметр name в форме в этом скрипте не участвует. Так вот, получается данная форма только для 3-х емаил адресов, а преположим, что адреса динамически изменяются, можно ли тут чем помочь? Ну не сами адреса точнее, а их количество.

Допустим, у нас эти 3 адреса уже есть, а я добавляю в базу еще один, четвертый. Как мне сразу изменить в скрипте в функции цифру "4" на "5", и т.д. если я потом буду еще адреса добавлять?
И нет ли скрипта, а точнее маленькой джава строчки, чтобы было следующее
грузится лист телефонов сотрудников отдела (ессно он может уменьшаться и увеличиваься), и чтобы было что-то следующее:
<.... id="id1" ...>
<.... id="id2" ...>
. . . . . . . . . . . . . . .
<.... id="javascript.inter()" ...>
. . . . . . . . . . . . . . .
<.... id="id8" ...>
Ну чтобы эта функция сама присваивала id'шкам значения. То есть если их 6 штук, то она с первой по 6-ю проставляет id=1 ... id=6, если 9 штук, то id=1 .... id=9 автоматом выставлено?
Если есть такая возможность, скажи плиз.... Буду очень благодарен.

А, быть может, можно как-то вообще отбирать не опираясь на имя формы (form name) и id (form id)?
То есть - стоит флажок, считывать value формы, не стоит, не трогать?
Если нереально, то когда как удобнее всего?

Брат, помоги пожалуйста, слезно прошу. Я в дурной ситуации....
  Вверх
sergejzr
Дата 6.11.2004, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Модератор:
Андрей СС , от всей души приглашаю Вас зарегестрироваться на нашем форуме smile
У вас появятся новые возможности. Например вы сможете отблагодарить многоув. Fearless повышением репутации smile
Как перл-программист, Вы также возможно сможете помогать нуждающимся smile

Уверен, Вам понравится у нас smile




--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Sardar
Дата 6.11.2004, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Добавим немного универсальности:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<script language="javascript" type="text/javascript">
function check_all(v) {
   var inp=document.getElementById("mailcont").getElementsByTagName("INPUT");
   for (var i=0; i<inp.length; i++) inp[i].checked=v;
}
function string_mail(a) {
    var inp=document.getElementById("mailcont").getElementsByTagName("INPUT");
    var s="";
    for (var i=0; i<inp.length; i++) {
      if (inp[i].value && inp[i].checked) s+=inp[i].value+"; ";
    }
  a.href="mailto: "+s;
  return true;
}

</script>
<div id="mailcont">
<input type="checkbox" value="[email protected]" > 1. email адрес номер один<br>
<input type="checkbox" value="[email protected]" > 2. email адрес номер два <br>
<input type="checkbox" value="[email protected]" > 3. email адрес номер три <br>
</div>
<br><input type="checkbox" onclick="check_all(this.checked);"> Отправить всем <br><br>
<a href="" onclick="string_mail(this);">  ОТПРАВИТЬ  </a>
</body>
</html>


В контейнер mailcont генерим скольугодно чекбоксов.

А вообще это не правильно, отправкой почты должен заниматся сервер а не почтовик клиента. Напрягает и заставляет думать о не серьезности конторы. smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Андрей СС
Дата 6.11.2004, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.11.2004

Репутация: нет
Всего: нет



Sardar
Спасибо большое! сейчас обработаю в голове!
sergej.z
Сказано - сделано ;)
PM MAIL   Вверх
Андрей СС
Дата 9.11.2004, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.11.2004

Репутация: нет
Всего: нет



Sardar
Еще раз спасибки большое, сейчас на работе все запустил - работает иделально.

Возникла последняя проблема /*доканаля я вас (( */, у меня в списке чекбоксов, есть чекбоксы, которые являются заголовками подблоков, а при отправке почты, их значение валуе считывается как "no" я так понял... И в общем письмо на no тоже собирается отправляться...
а разграничивать разделы - <div...> ... </div> потом снова <div...> ... </div> - тяжеловато. я вот пробую чтобы если адрес почты no, чтобы он тогда не добавлял в строку рассылки. Но чего-то пока около 6-8 разных вещей, которых я придумал чтобы обойти эту проблему - не помогают (((
PM MAIL   Вверх
Sardar
Дата 9.11.2004, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Добавим к чекбоксам аттрибут take_as_email(назови как хочешьsmile )
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<script language="javascript" type="text/javascript">
function check_all(v) {
  var inp=document.getElementById("mailcont").getElementsByTagName("INPUT");
  for (var i=0; i<inp.length; i++)
    if(inp[i].type=="checkbox" && inp[i].getAttribute("take_as_email")) inp[i].checked=v;
}
function string_mail(a) {
   var inp=document.getElementById("mailcont").getElementsByTagName("INPUT");
   var s="";
   for (var i=0; i<inp.length; i++) {
     if (inp[i].type=="checkbox" && inp[i].getAttribute("take_as_email") && inp[i].checked)
        s+=inp[i].value+"; ";
   }
 a.href="mailto: "+s;
 return true;
}

</script>
<div id="mailcont">
<input type="checkbox" value="[email protected]" take_as_email="true"> 1. email адрес номер один<br>
<input type="checkbox" value="[email protected]" take_as_email="true"> 2. email адрес номер два <br>
<input type="checkbox" value="[email protected]" take_as_email="true"> 3. email адрес номер три <br>
<input type="checkbox"> Меня брать не надо! <br>
</div>
<br><input type="checkbox" onclick="check_all(this.checked);"> Отправить всем <br><br>
<a href="" onclick="string_mail(this);">  ОТПРАВИТЬ  </a>
</body>
</html>


Все кто не имеют этот атрибут - не участвуют в переборе.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Андрей СС
Дата 9.11.2004, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 6.11.2004

Репутация: нет
Всего: нет



Оки теперь точно пасибки!
Я к тому же пока сидел - напсиал чтобы он if ... != "no"
Но твой метод ессно правильный
так что буду иметь ввиду - спасибо!!!!
Огромное спасибо!
Я теперь буду завсегдаем форума. Мне тут понравилось. Оперативнось на высоте!
Еще раз спасибо. Если еще раз будут на работе грызть - напишу.
PM MAIL   Вверх
Sardar
Дата 9.11.2004, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Да всегда рады тебя видеть, не только здесь, во флейме можно расслабиться smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.