Регистрация
Вход через соцсети
Восстановление пароля

Форма обратной связи ajax

Новый топик
10.09.2014, 13:03
Ответить | Цитировать
Нерсесов Сергей Николаевич

Зарегистрирован:
2014-06-16
Сообщений: 20

Такая проблема...имеется такой код:
Код:

<script>
jQuery(document).ready(function($) {

$("#ajax-contact-form").submit(function() {
var str = $(this).serialize();

$.ajax({
type: 'POST',
url: '<?= $SUB_FOLDER ?><?= $HTTP_ROOT_PATH ?>add.php?isNaked=1&ajax=1',
data: str,
success: function(msg) {
if(msg == 'OK') {
result = '<div class="notification_ok">Ваше сообщение было отправлено</div>';
$("#fields").hide();
} else {
result = msg;
}
$('#note').html(result);
}
});
return false;
});
});
</script>


проверка полей работает как надо, а вот при успешной отправке перебрасывает на страницу add.php + еще в добавок и дублируются инфоблоки которые есть на странице...
10.09.2014, 13:36
Ответить | Цитировать
Nexwich
Панасин Александр
Nexwich

Зарегистрирован:
2011-04-05
Сообщений: 943

Возможно у вас на "msg" возвращает не 'OK'. В действия после выполнения имеется код перенаправления. Тогда он возвращает и его.

Модуль "Почтовые уведомления" – настройка уведомлений на вашем сайте без программирования. Цена отзыв. Мне очень важно ваше мнение.
08.12.2014, 00:14
Ответить | Цитировать
Нерсесов Сергей Николаевич

Зарегистрирован:
2014-06-16
Сообщений: 20

Вот полный исходный код что у меня есть:

Альтернативная форма добавления объекта
Код:

<div id='fields'>
<div id='note'>
<?=$warnText ?>
</div>
<form name='adminForm' id='ajax-contact-form' class='nc-form' enctype='multipart/form-data' method='' action=''>
<div id='nc_moderate_form'>
<div class='nc_clear'></div>
<input name='admin_mode' type='hidden' value='<?= $admin_mode ?>' />
<?= $nc_core->token->get_input() ?>
<input name='catalogue' type='hidden' value='<?= $catalogue ?>' />
<input name='cc' type='hidden' value='<?= $cc ?>' />
<input name='sub' type='hidden' value='<?= $sub ?>' /><input name='posting' type='hidden' value='1' />
<input name='curPos' type='hidden' value='<?= $curPos ?>' />
<input name='f_Parent_Message_ID' type='hidden' value='<?= $f_Parent_Message_ID ?>' />
<?= nc_form_moderate('add', $admin_mode, 0, $systemTableID, $current_cc, (isset($f_Checked) ? $f_Checked : null), $f_Priority , $f_Keyword, $f_ncTitle, $f_ncKeywords, $f_ncDescription ) ?>
</div>
<?= nc_string_field('Name', "maxlength='255' size='50'", ($class_id ? $class_id : $classID), 1) ?><br />
<br />
<?= nc_string_field('Email', "maxlength='255' size='50'", ($class_id ? $class_id : $classID), 1) ?><br />
<br />
<?= nc_string_field('PhoneNumber', "maxlength='255' size='50'", ($class_id ? $class_id : $classID), 1) ?><br />
<br />

<? if (!$AUTH_USER_ID && $current_cc['UseCaptcha'] && $MODULE_VARS['captcha']) { ?><?= nc_captcha_formfield() ?><br/><br/><?= NETCAT_MODERATION_CAPTCHA ?> (*):<br/><input type='text' name='nc_captcha_code' size='10'><br/><br/><? } ?>
<div><?= NETCAT_MODERATION_INFO_REQFIELDS ?></div><br/>
<input class="btn" type="submit" name="submit" value="Отправить!" />
</form></div>
<script src="http://yandex.st/jquery/form/3.14/jquery.form.min.js"></script>
<script src="/illuminex_theme/js/notify.js"></script>
<script>
jQuery(document).ready(function($) {

$("#ajax-contact-form").submit(function() {
var str = $(this).serialize();

$.ajax({
type: 'POST',
url: '<?= $SUB_FOLDER ?><?= $HTTP_ROOT_PATH ?>add.php?isNaked=1&ajax=1',
data: str,
success: function(msg) {
if(msg == 'OK') {
result = "<div class='notification_ok3'></div>"
$('#fields').hide();
} else {
result = msg;
}
$('#note').html(result);
}
});
return false;
});
});

</script>


Условия добавления объекта
Пусто

Действие после добавления объекта
Код:

<?
// значения визуальных настроек
$res = $db->get_var("SELECT CustomSettings FROM Sub_Class WHERE Sub_Class_ID=$cc");
( $res ? eval("\$cc_settings = $res") : $cc_settings = NULL );

// значения визуальных настроек по умолчанию
$res = $db->get_var("SELECT CustomSettingsTemplate FROM Class WHERE Class_ID=$classID");
eval("\$default_cc_settings = $res");

echo "<div class='nc_mail_from_site'>".str_replace("%NAME", htmlspecialchars($f_Name), ( $cc_settings[TextAfterSend] ? $cc_settings[TextAfterSend] : $cc_settings[TextAfterSend][default_value] ) )."</div>";

$f_NameMail="Сообщение с сайта";
$f_Mail = "Имя: $f_Surname $f_Name $f_Patronymic

Телефон: $f_PhoneNumber

E-mail: $f_Email

Артикул: $f_Arti

Сообщение:

$f_Note";

$mailer = new CMIMEMail();
$mailer->mailbody(strip_tags($f_Mail));
$mailer->send(($cc_settings[EmailTo] ? $cc_settings[EmailTo] : $system_env[SpamFromEmail]), $f_Email, $f_Email, $f_Note, $f_NameMail);

?>


Не пойму, почему работать не хочет...может кто поделится решением?
14.04.2015, 18:27
Ответить | Цитировать
Гость
Гость

Ну так вы нашли решение?
04.05.2015, 20:19
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Тут нужно смотреть файрбагом неработающий скрипт. Давайте урл страницы - попробуем разобраться.

26.06.2015, 13:41
Ответить | Цитировать
Нерсесов Сергей Николаевич

Зарегистрирован:
2014-06-16
Сообщений: 20

Цитата:
http://www.illuminex.ru/footer/teh-razdel/


Вот тестовая страничка
26.06.2015, 13:56
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

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

26.06.2015, 14:02
Ответить | Цитировать
Нерсесов Сергей Николаевич

Зарегистрирован:
2014-06-16
Сообщений: 20

Сделал
26.06.2015, 14:12
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Поглядел - на add не перекидывает, все выглядит пристойно. Посмотрите, от меня должно было тестовое сообщение прийти.
После отправки сообщения, правда, ничего не появляется, кроме пустого дива:
<div class='nc_mail_from_site'></div>
но судя по вашему действию после добавления - там должен выводиться "спасибо..." и раз он там у вас не выводится, значит у вас не созданы или не заполнены "пользовательские поля" этого компонента(шаблона), раз он не может нигде текст для вывода на экран найти.
Видимо по той же причине и емайл, куда отправлять, тоже не находит.

26.06.2015, 14:32
Ответить | Цитировать
Нерсесов Сергей Николаевич

Зарегистрирован:
2014-06-16
Сообщений: 20

Да, вы били правы, спасибо, не заметил)) добавил вывод сообщения после отправки и письмо приходит, но теперь почему то после отправки дублируются инфоблоки которые находятся на странице

+ msg не получает OK, хотя письмо отправляется)
26.06.2015, 21:45
Ответить | Цитировать
Руслан Густокашин
Студия Вэлпис
Руслан Густокашин

Зарегистрирован:
2012-02-06
Сообщений: 869

Я сегодня с аналогичной проблемой столкнулся - если в разделе несколько инфоблоков, и в одном из них идет добавление объекта, то после добавления выводится вся портянка из инфоблоков. У вас скорее всего по этой же причине и идет задвоение.
Предлагаю вам выключить все инфоблоки в разделе, кроме того, где форма добавления, и в этом компоненте в нужных местах вызывать отображение нужных вам инфоблоков через функцию nc_objects_list. Я у себя попробовал - в этом случае после добавления объекта лишние инфоблоки не выводятся.

198 196 2015-06-26 21:45:55 13802
Описание проекта