Как добавить новое поле в Callme

Список розділів Скрипти Callme — скрипт замовлення зворотнього дзвінка

Опис: Свіжа версія — 1.9.5 (2013-12-21)

#1 Nazar Tokar » 26.05.2013, 11:39

Расскажу ещё раз, как добавить новое поле в Callme. Например, это будет поле с электронной почтой.

Открываем form.html и в нужном месте добавляем текстовое поле:
Код: Виділити все
<span>Электронная почта</span>
<span><input class="cme_txt" type="text" maxlength="150" value="" id="cmail"></span>

Обратите внимание: нам нужно указать новый идентификатор для этого поля. В данном случае это cmail, вы можете использовать любое другое.

Далее открываем core.js и ищем функцию cmeS(). В ней нам нужно добавить отправку данных из поля в index.php. Делается это так: в функцию после
Код: Виділити все
jQuery.getJSON("/callme/index.php", {
добавляем строку:
Код: Виділити все
cmail: jQuery("#cmail").val(),
В результате функция получит такой вид:

Код: Виділити все
jQuery.getJSON("/callme/index.php", {
cmail: jQuery("#cmail").val(),
cname: jQuery("#cname").val(),
cphone: jQuery("#cphone").val(),
ccmnt: jQuery("#ccmnt").val(),
ctime: cnt,
url: location.href
}, function(i) {   
cmeMsg(i.cls,i.message);      
if (i.result == "success") {
jQuery.Storage.set("callme-sent", i.time);
setTimeout( function(){ cmeShw(); }, 4000);
setTimeout( function(){ cmeClr(); }, 5000);
}
});

Далее в index.php нужно сделать следующее. Ищем строку
Код: Виділити все
$phone = gf("cphone");
и после нее добавляем
Код: Виділити все
$mail = gf("cmail");

Осталось добавить это поле в отправляемое письмо. Ищем:
Код: Виділити все
$mess =  "<b>Телефон</b><br>".$phone."<br><br>
<b>Имя</b><br>".$name."<br><br>";

и после добавляем строку:

Код: Виділити все
$mess =  $mess."<b>E-mail</b><br>".$mail."<br><br>";

Сохраняем, загружаем, чистим кэш.
Profit! :clap:
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців

#2 BURANO » 27.05.2013, 08:41

Большое спасибо!))
BURANO

#3 Егор » 19.06.2013, 17:05

Все делаю как у вас,а на почту приходит пустая строка http://savepic.org/3726103.png
Егор

#4 Nazar Tokar » 20.06.2013, 12:29

Егор, значит, не всё правильно делаете. Я сделал и проверил — всё работает.
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців

#5 Egor.Bushuev » 20.06.2013, 12:53

Спасибо :smoke:
Egor.Bushuev
Вік: 48
Репутація: 0
Повідомлення: 1
З нами: 5 років 4 місяці

#6 Игорь » 01.10.2013, 15:07

Здравствуйте!
Можно добавить поля типа checkbox в форму?
Допустим в версию 1.8, добавлял, не срабатывают.
Наверняка что-то в скрипте дописать нужно, а вот что именно я не знаю)))
Игорь
Репутація: 0
Повідомлення: 4
З нами: 5 років

#7 Nazar Tokar » 01.10.2013, 16:10

Игорь, нет такого функционала на данный момент.

Смысл такой: надо для конфиге придумать символ, с которого будет начинаться поле с чекбоксом, далее в f.php добавить в функцию обработки полученных данных, что если строка начинается с этого символа, то отображать чекбокс.

Ну и в callme.js добавить в функцию сбора данных добавление в общий массив чекбоксов из формы. Это все, можете делать.
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців

#8 Игорь » 02.10.2013, 10:52

Ага, тут понятно.
А можно ли "допилить" Callme 1.8 под чекбоксы? Просто все уже прикручено, настроено, только они остались.
Игорь
Репутація: 0
Повідомлення: 4
З нами: 5 років

#9 Nazar Tokar » 02.10.2013, 11:39

Игорь, можно, более того, я вам выше рассказал, как это сделать.
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців

#10 Игорь » 02.10.2013, 17:31

Добавлял сюда:
Код: Виділити все
      jQuery.getJSON("/callme/index.php", {
         contentType: "text/html; charset=utf-8",
         cname2: jQuery("#cname").val(),
         cphone2: jQuery("#cphone").val(),
         ccmnt2: jQuery("#ccmnt").val(),
         email: jQuery("#email").val(),
         site: jQuery("#site").val(), 
[b]         service: jQuery("#service").val(),  [/b]
         ctime2: cnt
но передаются value со всех чекбоксов (service - 7шт), не только с "чекнутых"
Игорь
Репутація: 0
Повідомлення: 4
З нами: 5 років

#11 Nazar Tokar » 02.10.2013, 19:22

Игорь, вам нужно воспользоваться такой конструкцией:

Код: Виділити все
yourCheckbox1: $("#yourCheckbox1").prop("checked"),

Тогда вам будут приходить true или false по чекбоксам.
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців

#12 Игорь » 03.10.2013, 11:49

Назар, спасибо за направление поиска))
В результате накопал такое, может кому-то пригодится:
Код: Виділити все
<script type='text/javascript'>function union_chbox() {values="";for (i = 0; i<7; i++) {if (document.getElementById('service'+i).checked) {values = values+document.getElementById('service'+i).value+", ";}}document.getElementById('usluga').value = values;return (true);}</script>
<div id='checks'>
<input type='checkbox' value='Вариант1' id='service0' onClick='return union_chbox()'> <label for='service0'>Вариант1</label><br />
<input type='checkbox' value='Вариант2' id='service1' onClick='return union_chbox()'> <label for='service1'>Вариант2</label><br />
<input type='checkbox' value='Вариант3' id='service2' onClick='return union_chbox()'> <label for='service2'>Вариант3</label><br />
<input type='checkbox' value='Вариант4' id='service3' onClick='return union_chbox()'> <label for='service3'>Вариант4</label><br />
<input type='checkbox' value='Вариант5' id='service4' onClick='return union_chbox()'> <label for='service4'>Вариант5</label><br />
<input type='checkbox' value='Вариант6' id='service5' onClick='return union_chbox()'> <label for='service5'>Вариант6</label><br />
<input type='checkbox' value='Вариант7' id='service6' onClick='return union_chbox()'> <label for='service6'>Вариант7</label><br />
<input type='hidden' name='values' id='usluga' value='Варианты''>
</div>

т.е. value чекнутых checkbox'ов записываются в скрытое поле id='usluda' и потом это поле передается скрипту.
Для очистки данных в чекбоксах после отправки добавил такую строчку в callme.js
Код: Виділити все
jQuery("#checks input").prop("checked", false);
Игорь
Репутація: 0
Повідомлення: 4
З нами: 5 років

#13 Nazar Tokar » 03.10.2013, 12:14

Игорь, лучше создайте в мастерской тему "Как добавить чекбокс в Callme" и пользователи будут вам благодарны за подсказку. Так всем легче будет найти данные.
Читайте твітер.
Nazar Tokar M
Автор теми, Администратор
Аватар
Звідки: Україна
Репутація: 149
Повідомлення: 2518
Теми: 100
З нами: 5 років 7 місяців


Повернутись в Callme — скрипт замовлення зворотнього дзвінка

Хто зараз на форумі (базується на активності користувачів за останні 30 хвилин)

Зараз переглядають цей розділ: 10 гостей

cron