Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вместо регистрации-отправка на e-mail (https://javascript.ru/forum/misc/49933-vmesto-registracii-otpravka-na-e-mail.html)

vmazal 09.09.2014 15:56

tsigel,
так сейчас напишу

Uncaught TypeError: undefined is not a function output.js:2(anonymous function)

tsigel 09.09.2014 21:59

а код места с ошибкой?

vmazal 10.09.2014 17:02

tsigel,

tsigel 10.09.2014 17:26

либо нет #slider-range-min, либо у вас проблема с jQyery или подключением плагина слайдера. Я не знаю сделали вы 2 версии jQyery для себя и для вордпресса и если да, то может вы не на ту jQuery поставили плагин слайдера. Куда-то в этом направлении надо копать.

vmazal 11.09.2014 13:10

tsigel,
я правильно понимаю - для вордпресса, это, допустим в header.php прописать библиотек jquery, а для себя - это на странице,где форма прописать эту библиотеку,так?

на index0.html , т.е. на хтмл странице,ошибок нет никаких, а вот на вордперсовской -есть, и ползунок не работает, получается чтото не так подлкюлчил в вордпрессе

tsigel 11.09.2014 13:22

посмотрите какая версия у вас подключена. Посмотрите лтдельно работает ли вообще слайдер с такой версией. Если нет - попробуйте подключить в вордпрес jQuery версии 1,9 или 1,8. Посмотрите работает ли он. Если не работает верните в него старый и подключите там же себе новый через jQuery noconflict. Обратите внимание что дополнительные библиотеки которые ставятся на jQuery (например слайдер) надо ставить на новый jQuery.

vmazal 11.09.2014 16:30

tsigel,
форма на 1.8 работает, на 2.1.1 не работает,на 2.1.0 - работает, но ползунок везде не работает (

tsigel 11.09.2014 16:39

Еаберите в консоли:
1) $.fn.jquery
2) $(document).slider

vmazal 11.09.2014 17:00

tsigel,
1) 1.8.3
2) undefined

tsigel 11.09.2014 17:02

Значит не подключен плагин слайдера
Как вы его подключаете?

vmazal 11.09.2014 17:44

<script src="output.js"></script>


в head-e

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

vmazal 11.09.2014 17:47

и кстати перестала отправлять форма данные вдиимо ..



ошибок никаких консоль не выдает теперь

Viral 11.09.2014 17:56

vmazal,
воу воу паринь, ты в блокноте кодишь? О_о

tsigel 11.09.2014 18:35

так трудно сказать
надо видеть сайт.
Что-то не так :)
(Кэп)

vmazal 12.09.2014 10:48

Viral,
ну да, а в чём ещё?:-?
tsigel,
в общем сейчас ситуация такова -
работает вот этот код страницы- он отправляет два поля на емейл

<head><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="http://vmazal.mcdir.ru/wp-content/themes/twentyfourteen/fancybox/jquery.fancybox.js"></script>
<script src="http://vmazal.mcdir.ru/wp-content/themes/twentyfourteen/sliding.form.js"></script>
<script src="output.js"></script>
<link rel="stylesheet" type="text/css" href="http://vmazal.mcdir.ru/wp-content/themes/twentyfourteen/css/style.css" media="screen"/>
<style>
  span.reference{
            position:fixed;
            left:5px;
            top:5px;
            font-size:10px;
            text-shadow:1px 1px 1px #fff;
        }
        span.reference a{
            color:#555;
            text-decoration:none;
			text-transform:uppercase;
        }
        span.reference a:hover{
            color:#000;
            
        }
</style>    
</head>
<body>
<div id="wrapper">
<h1>Задать платный вопрос</h1>
            <div id="steps" style="width: 3000px; height: 540px;">
                    <form id="formElem" name="formElem" action="" method="post">
                        <fieldset class="step">
                            <legend>Контактные данные</legend>
                            <p>
                                <label for="username">Имя</label>
                                <input id="username" username="user"/>
                            </p>
                            <p>
                                <label for="email">Email</label>
                                <input id="email" name="email" placeholder="vopros@chelovek-zakon.ru" type="email" AUTOCOMPLETE=OFF/>
                            </p>
<p>
                                <label for="country">Регион</label>
                                <select id="country" name="country">
<option>77		г. Москва</option>
<option>78		г. Санкт-Петербург</option>
<option>1		Республика Адыгея	</option>
<option>2		Республика Башкортостан	</option>
<option>3		Республика Бурятия	</option>
<option>4		Республика Алтай	</option>
<option>5		Республика Дагестан	</option>

в общем список городов 

                                </select>
                            </p>
                        </fieldset>
                        <fieldset class="step">
                            <legend>Вопрос</legend>
                             <p>
                                <label for="name">Текст вопроса</label>
                                 <textarea rows="12"name="name" id="name"></textarea>
                                </p>   <p>                            
<label for="cena">Цена вопроса</label>
<input id="cena" name="cena" type="range" min=250 max=3000 value=500/>
<output for="cena">1</output>		</p>			                            
                        </fieldset>
                        <fieldset class="step">
                            <legend>Оплата</legend>
                            <p>
                                <label for="cardtype">Карточка</label>
                                <select id="cardtype" name="cardtype">
                                    <option>Visa</option>
                                    <option>Mastercard</option>
                                    <option>American Express</option>
                                </select>
                            </p>
                            <p>
                                <label for="cardnumber">Номер карты</label>
                                <input id="cardnumber" name="cardnumber" type="number" AUTOCOMPLETE=OFF />
                            </p>
                            <p>
                                <label for="secure">Код безопасности</label>
                                <input id="secure" name="secure" type="number" AUTOCOMPLETE=OFF />
                            </p>
                            <p>
                                <label for="namecard">Имя на карте</label>
                                <input id="namecard" name="namecard" type="text" AUTOCOMPLETE=OFF />
                            </p>
                        </fieldset>
                        <fieldset class="step">
                            <legend>Дополнительно</legend>
                            <p>
                                <label for="newsletter">Количество юристов</label>
				<select id="newsletter" name="newsletter">
                                    <option value="Daily" selected>Один</option>
                                    <option value="Weekly">Два (+100р.)</option>
                                    <option value="Monthly">Три и более(+200р.)</option>
                                </select>
                            </p>
                            
                                 <label for="updates">Дополнительные опции</label>
<p>
<input type="checkbox" id="check1"/><label for="check1">Приватный вопрос (+200р.)</label>
<input type="checkbox" id="check2"/><label for="check2">Срочный вопрос (+200р.)</label>
</p>
							<p>
                                <label for="tagname">Комментарий к вопросу</label>
                                <input id="tagname" name="tagname" type="text" AUTOCOMPLETE=OFF />
                            </p>
                        </fieldset>
                        <fieldset class="step">
                            <legend>Отправка юристам</legend>
                            <p>
                                Все данные были корректно введены если у всех граф горит зелёная отметка. Красные отметки означают, что некоторые поля пропущены или заполнены некорректно. Это последний шаг, подтверждающий отправку формы.
                            </p>
                            <p class="submit">
                                <button id="registerButton" type="submit">Отправить</button>
                            </p>
                        </fieldset>
                    </form>
                </div>
                <div id="navigation" style="display:none;">
                    <ul>
                        <li class="selected">
                            <a href="#">Контакты</a>
                        </li>
                        <li>
                            <a href="#">Вопрос</a>
                        </li>
                        <li>
                            <a href="#">Оплата</a>
                        </li>
                        <li>
                            <a href="#">Дополнительно</a>
                        </li>
                       <li>
                            <a href="#">Отправка</a>
                        </li>
                    </ul>                 
</div>
            </div>
<!-- Модальное окно от fancybox -->
 <script src="http://vmazal.mcdir.ru/wp-content/themes/twentyfourteen/sc.js"></script>
</body>

vmazal 12.09.2014 10:48

на емейл приходит всегда два сообщения - одно пустое и всле за ним с двумя полями.

видимо скрипт,что завершает этот код, sc.js, отправляет эти два поля,
вот его код, который я поправил,и он стал отправлять два поля:
function validateEmail(email) { 
		var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
		return reg.test(email);
	}

	$(document).ready(function() {
		$(".modalbox").fancybox();
		$("#formElem").submit(function() { return false; });

		
		$("#registerButton").bind("click", function(){
			var emailval  = $("#email").val();
			var newsletterval = $("#newsletter").val();	
           var newsletterlen    = newsletterval.length;
		    var nameval = $("#name").val();	
          var namelen    = nameval.length;
			var mailvalid = validateEmail(emailval);
			var usernameval = $("#username").val();
     		var countryval = $("#country").val();
			var cenaval = $("#cena").val();
                	var check1valval = $("#check1").val(); 
			var check2val = $("#check2").val();
	      		var tagnameval = $("#tagname").val();
			
			if(mailvalid == false) {
				$("#email").addClass("error");
			}
			else if(mailvalid == true){
				$("#email").removeClass("error");
			}
			
			if(namelen < 4) {
				$("#name").addClass("error");
			}
			else if(namelen >= 4){
				$("#name").removeClass("error");
			}
			
           if(newsletterlen < 4) {
				$("#newsletter").addClass("error");
			}
			else if(newsletterlen >= 4){
				$("#newsletter").removeClass("error");
			}
                    
			if(mailvalid == true && namelen >= 4 && newsletterlen>=4 ) {
				// если обе проверки пройдены
				// сначала мы скрываем кнопку отправки
				$("#registerButton").replaceWith("<em>отправка...</em>");
				
				$.ajax({
					type: 'POST',
					url: 'sendmessage.php',
					data: $("#formElem").serialize(),
					success: function(data) {
						if(data == "true") {
							$("#formElem").fadeOut("fast", function(){
								$(this).before("<p><strong>Успешно! Ваше сообщение отправлено  :)</strong></p>");
								setTimeout("$.fancybox.close()", 1000);
							});
						}
					}
				});
			}
		});
	});


а в sliding.form.js , котоырй я подключаю в хеде,и который раньше , когда тема начиналась только, еще оптравлял данные на сервер, у меня вот такие изменения относитеьно оптравки в php файл:

$('#registerButton').bind('click',function(){
		if($('#formElem').data('errors')){
			alert('Пожалуйста, исправьте ошибки,где отмечено красным');
			return false;
		}else {
              
          
          var dataToServer = {
            	username: document.getElementById("username").value,
				email: document.getElementById("email").value,
		                country: document.getElementById("country").value,
				name: document.getElementById("name").value,
				newsletter: document.getElementById("newsletter").value,
				cena: document.getElementById("cena").value,
                		check1: document.getElementById("check1").value,               
				check2: document.getElementById("check2").value,  
	      			tagname: document.getElementById("tagname").value, 
                         };
  alert('OTnPAB/\EHO');
                         $.ajax({
                             url: "sendmessage.php",
                             method: "post",
                             data: dataToServer,
                             success: function () { /*('Update successful! Успех! Сервер получил Емайл!' */},
                             error: function () { /*$('#status').text' Провал! Что-то пошло не так!' */}
                       });


почему же он тперь не отправляет даннные ? раз приходит пустое,а sc.js - отправляет два поля,а если в php файл отправки доабвить поле ,допустим "name",то ничего вообще не приходит..

tsigel 12.09.2014 11:44

vmazal,
Так трудно сказать, лучше ссылку на страницу

Цитата:

ну да, а в чём ещё?
Есть редакторы которые подсвечивают синтаксис языка (например nodtepad++ и sublimeText), и есть ide (из бесплатных например Eclipse и netbeans)

vmazal 12.09.2014 12:43

tsigel,
ссылку на страницу, где выполняется форма? вот она http://vmazal.mcdir.ru/18-2

так ,сейчас скачаю редактор

vmazal 12.09.2014 16:43

можно попросить кого-нибудь скинуть руководство именно по разделу отправки и обработки переменных из js в php

tsigel 12.09.2014 16:51

http://jquery.page2page.ru/tags/ifr.html

https://api.monosnap.com/image/downl...PlN9rPQBXFHtVP

vmazal 12.09.2014 17:21

tsigel,
оо,благодарю! наконец-то понятный матреиал для чтения

а по ссылке на сайт не смотрели ,не ясно почему так?

tsigel 12.09.2014 17:54

там нет ошибок и я не видел там слайдера
Вроде там все работает, не?

vmazal 15.09.2014 12:59

tsigel,
так,со всем разобрался, осталась проблема - слайдер не работает на отображением данных в форме , а сам работает - т.е на электронку приходит значения разные,взависимости от того,где устанвоить слайдер
он на вкладке вопрос находится

tsigel 15.09.2014 13:22

$("#cena").change(function () {
   $(this).next().next().text($(this).val());
});
$("#cena").change();

vmazal 16.09.2014 10:51

tsigel,
добавил этот код в скрипт,ничего не поменялось..
пытался другой слайдер(ползунок)прикрутит ь, и ещё много других-везде одно и то же-сами работают,но значения не отображают..

вот тут чисто сам полузнок
http://vmazal.mcdir.ru/123-2

tsigel 16.09.2014 10:59

vmazal,
Во внуторь $(function () {}) вставьте мой код, он работает
https://www.monosnap.com/image/LztOR...CIoCzA2Np3JBft

vmazal 16.09.2014 12:16

tsigel,
офигетЬ!!! все заработало!! спасибо огромное!!!!!!!


Часовой пояс GMT +3, время: 11:58.