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

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

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

#1by Nazar Tokar » 26.05.2013, 11:39

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

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

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

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

Code: Select all
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 нужно сделать следующее. Ищем строку
Code: Select all
$phone = gf("cphone");
и после нее добавляем
Code: Select all
$mail = gf("cmail");

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

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

Code: Select all
$mess =  $mess."<b>E-mail</b><br>".$mail."<br><br>";

Сохраняем, загружаем, чистим кэш.
Profit! :clap:
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months

#2by BURANO » 27.05.2013, 08:41

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

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

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

#4by Nazar Tokar » 20.06.2013, 12:29

Егор, значит, не всё правильно делаете. Я сделал и проверил — всё работает.
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months

#5by Egor.Bushuev » 20.06.2013, 12:53

Спасибо :smoke:
Egor.Bushuev
Age: 49
Reputation: 0
Posts: 1
With us: 5 years 11 months

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

Здравствуйте!
Можно добавить поля типа checkbox в форму?
Допустим в версию 1.8, добавлял, не срабатывают.
Наверняка что-то в скрипте дописать нужно, а вот что именно я не знаю)))
Игорь
Reputation: 0
Posts: 4
With us: 5 years 7 months

#7by Nazar Tokar » 01.10.2013, 16:10

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

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

Ну и в callme.js добавить в функцию сбора данных добавление в общий массив чекбоксов из формы. Это все, можете делать.
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months

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

Ага, тут понятно.
А можно ли "допилить" Callme 1.8 под чекбоксы? Просто все уже прикручено, настроено, только они остались.
Игорь
Reputation: 0
Posts: 4
With us: 5 years 7 months

#9by Nazar Tokar » 02.10.2013, 11:39

Игорь, можно, более того, я вам выше рассказал, как это сделать.
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months

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

Добавлял сюда:
Code: Select all
      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шт), не только с "чекнутых"
Игорь
Reputation: 0
Posts: 4
With us: 5 years 7 months

#11by Nazar Tokar » 02.10.2013, 19:22

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

Code: Select all
yourCheckbox1: $("#yourCheckbox1").prop("checked"),

Тогда вам будут приходить true или false по чекбоксам.
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months

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

Назар, спасибо за направление поиска))
В результате накопал такое, может кому-то пригодится:
Code: Select all
<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
Code: Select all
jQuery("#checks input").prop("checked", false);
Игорь
Reputation: 0
Posts: 4
With us: 5 years 7 months

#13by Nazar Tokar » 03.10.2013, 12:14

Игорь, лучше создайте в мастерской тему "Как добавить чекбокс в Callme" и пользователи будут вам благодарны за подсказку. Так всем легче будет найти данные.
Читайте твітер.
Nazar Tokar M
Topic author, Адмін
Avatar
Location: Україна
Reputation: 149
Posts: 2520
Topics: 100
With us: 6 years 2 months


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

Who is online (over the past 30 minutes)

Users browsing this forum: 11 guests

cron