Перейти к содержимому


Отправка счета


Сообщений в теме: 26

#21 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 20 Май 2014 - 12:55

Ок, это заработало.

Теперь, чтобы отправить шаблон, по нажатию на "Отправить", я вставил:

echo "<input type='submit' value='Отправить'>";
send_template(23,"id=$ID"); // 23 - шаблон рассылки
echo "</form>";

По нажатию на Отправить выдает Invalid button id

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

Сообщение отредактировал fabrika-r: 20 Май 2014 - 13:01


#22 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 20 Май 2014 - 13:09

Немного переделал:

echo "<input type='submit' value='Отправить'>";
$line['E-mail'] = $_REQUEST['emails'];
send_template(23,"id=$ID");
echo "</form>";

Теперь вообще ничего не доходит) В прошлый раз доходило видимо потому что емайл брался из поля E-mail (который подтягивается из контрагентов по стандартному вычислению).

#23 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Май 2014 - 14:12

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

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

#24 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 20 Май 2014 - 14:39

Просмотр сообщенияCbCoder (20 Май 2014 - 14:12) писал:

Очевидно, вы совершенно не понимаете принцип работы html-форм.

Это очевидно) Для этого же и существует форум.

Насколько я понял механизм должен быть следующим: выбираем значения в форме, нажимаем "Отправить", после этого форма должна перезагрузиться (в этот момент в поле E-mail впишется выбранное значение) и произойти отправка шаблона. Или не так?

Не могли бы вы указать где ошибка?

#25 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Май 2014 - 14:58

Цитата

Для этого же и существует форум

Форум существует для помощи непосредственно по функционалу КБ (т.е. по информации, которой более нигде не найти), но не по обучению навыкам программирования, которые не имеют прямого отношения к Клиентской базе - для этого хватает документации на других ресурсах, в том числе мануал по PHP.

Цитата

Не могли бы вы указать где ошибка?

Пример в документации смотрели? Почему бы просто не следовать ему?

#26 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Май 2014 - 15:35

Собственно, пример из документации, адаптированный под вашу задачу:

if (isset($_REQUEST["emails"]))
   { // код ниже выполняется только при получении результата формы
	 $line['E-mail'] = implode(",",$_REQUEST['emails']); // разворачиваем массив выделенных емейлов в строку через запятую
	 send_template(23,"id=$ID");
	 echo "<script>";
	 echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
	 echo "window.close()"; // Закрываем текущее
	 echo "</script>";
   }
echo "<form method='get'>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>";  // Значение строки
$result = data_select(51, "f545=",$line['На кого']['ID']);
while ($row = sql_fetch_array($result))
{
  echo "<input type='checkbox' name='emails[]' value='".$row['f549']."'>".$row['f549']."<br>";
}
echo "<input type='submit' value='Отправить'>";
echo "</form>";


#27 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 22 Май 2014 - 11:20

Спасибо!

Немного видоизменил - добавил подписи к почте (ФИО и должность), после выбора значений поле обновляется и емайл шлется на выбранные почты + подтягиваются значения из самой т. Контрагенты (на случай если общей почты нет в Сотрудниках)


if (isset($_REQUEST["emails"]))
   { // код ниже выполняется только при получении результата формы
         $upd_data['E-mail'] = implode(",",$_REQUEST['emails']); // разворачиваем массив выделенных емейлов в строку через запятую
         update_query($upd_data,"Счета","id=$ID");
         send_template(23,"id=$ID");
         echo "<script>";
         echo "window.opener.location.reload(1);"; // Перезагружаем родительское окно
         echo "window.close()"; // Закрываем текущее
         echo "</script>";
   }
echo "<form method='get'>";
echo "<input type='hidden' name='id' value='$button_id'>"; // Передаем значение кнопки
echo "<input type='hidden' name='line_id' value='$ID'>";  // Значение строки
if($line['На кого']['E-mail']!=""){ echo "<input type='checkbox' name='emails[]' value='".$line['На кого']['Конт. E-mail']."'>".$line['На кого']['Конт. E-mail']." (".$line['На кого']['Имя ЛПР']." /".$line['На кого']['Должность'].")<br>";}
  if($line['На кого']['E-mail']!=""){ echo "<input type='checkbox' name='emails[]' value='".$line['На кого']['E-mail']."'>".$line['На кого']['E-mail']."<br>";}
$result = data_select(51, "f545=",$line['На кого']['ID']);
while ($row = sql_fetch_array($result))
{
  echo "<input type='checkbox' name='emails[]' value='".$row['f549']."'>".$row['f549']." (".$row['f546']." / ".$row['f547'].")<br>";
} 
echo "<input type='submit' value='Отправить'>";
echo "</form>";

Вдруг кому пригодится.





Количество пользователей, читающих эту тему: 4

0 пользователей, 4 гостей, 0 анонимных