Вместо регистрации-отправка на e-mail
здравствуйте, посдкажите пожалуйста, как переделать код вместо регистрации-отправка на e-mail. Первый день разбираюсь с javascript.
....... } /* if there are errors don't allow the user to submit */ $('#registerButton').bind('click',function(){ if($('#formElem').data('errors')){ alert('Please correct the errors in the Form'); return false; } }); }); вообще хочу переработать вот эту форму как обратной связи, где данные про карту сделать оплату,чтобы пользщователь после оплаты мог отправить только http://tympanus.net/Tutorials/FancySlidingForm/ |
vmazal,
javascript не отправляет письма на емейл, это делает сервер. |
tsigel,
понятно объяснил :victory: как сделать так,чтобы скрипт сохранил куда-то информацию всю и затем сервер отправил? у меня есть исходник целиком этой формы кто поможет, тому + ещё вопрос :help: как вообще весь этот скрипт заставить работать на моём вордпрессе? загрузить файлы с папкам- css , images , файл javascript.js ,а из хтмл вставить в страницу код просто, правильно? |
Сохранить информацию:
var a = "информация"; alert(a); отправить информацию на сервер: читайте про AJAX, если с jQuery то так: $.ajax({ url: "someUrl", method: "post", data: {information: a||"информация"}, success: function () {/* Успех */}, error: function () {/* Провал */} }) |
tsigel,
а e-mail куда отправить куда писать то? |
vmazal,
var dataToServer = { email: document.getElementById("email").value, userName: document.getElementById("username").value }; $.ajax({ url: "someServerUrl", method: "post", data: dataToServer, success: function () {/* Успех! Сервер получил Емайл! */}, error: function () {/* Провал! Что-то пошло не так! */} }); Этот код сразу отправит запрос на сервер, так что его надо вставлять в функцию-обработчик кнопки отправки письма или что-то в этом роде (чтобы запрос уходил не при открытии страницы). |
tsigel,
получается где email: document.getElementById("email").value, userName: document.getElementById("username").value я должен ввести все поля,которые мне необходимо передать на сервер? тогда получается скрипт возьмет из формы емейл,который ввел пользователь и ему отправит ??? мне то надо на мой ящик все данные формы отослать |
vmazal,
Скрипт не умеет отправлять письма, я это уже писал. Он отправит данные с формы на сервер, а на сервере вы можете отправить письмо с этими данными куда хотите, себе, пользователю, друзьям и т.д. + мало написать на клиенте отправку данных на сервер. На сервере надо данные принять, обработать... |
tsigel,
хорошо, а куда на сервер он отправляет? в файл какой-то или куда? и как сообщить скрипту, что отправлять на сервер? вот в этих полях,как я понял? email: document.getElementById("email").value, userName: document.getElementById("username").value |
vmazal,
Здравствуйте! Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
Вы задаете вопросы из серии "А как ходить?". Либо пишите в раздел "Работа", где вам сделают за деньги, либо приложите усилия к тому чтобы что-то сделать. Я написал вам почти все что надо сделать на клиенте. Потрудитесь хотябы понять что я написал, как и что оно делает. Не будет получаться - вам обязательно помогут.
|
tsigel,
ок! хорошо! да, яваскрипт я вообще не знаю,первый раз с ним дело имею /* if there are errors don't allow the user to submit */ $('#registerButton').bind('click',function(){ if($('#formElem').data('errors')){ alert('Please correct the errors in the Form'); return false; else var dataToServer = { email: document.getElementById("email").value, userName: document.getElementById("username").value }; $.ajax({ url: "someServerUrl", method: "post", data: dataToServer, success: function () {/* Успех! Сервер получил Емайл! */}, error: function () {/* Провал! Что-то пошло не так! */} }); } еще вопрос-так сработает или нет? |
tsigel,
Спасибо! Я Вас понял. Сейчас буду разбираться,как разберусь-напишу в личку. Просто мне надо реализовать на сайте форму отправки сообщений - платных-бесплатных, сам сайт на вордпрессе, мне посоветовали на php написать, но php я не знаю, javascript тоже не знаю,но решил на нём, он как-то попонятнее показался. |
vmazal,
Нет, вы допустили синтаксическую ошибку |
/* if there are errors don't allow the user to submit */ $('#registerButton').bind('click',function(){ if($('#formElem').data('errors')) { alert('Please correct the errors in the Form'); return false; } else { var dataToServer = { email: document.getElementById("email").value, userName: document.getElementById("username").value }; $.ajax({ url: "someServerUrl", method: "post", data: dataToServer, success: function () {/* Успех! Сервер получил Емайл! */}, error: function () {/* Провал! Что-то пошло не так! */} }); } } |
Учтите, что на сервер придут толко поля перечисленные в объекте "dataToServer", то есть сейчас это емэйл и имя пользователя. Наверно вам нужно больше полей и вы можете добавить их по аналогии
|
tsigel,
вижу. читаю учебник. да, про поля эти я понял |
tsigel,
не подскажешь, почему получилась такая форма? сдвинутая немного и последнее поле нормально не фунцкионирует и правила проверки перестали работать вообще http://vmazal.mcdir.ru/18-2 файл скрипта и стиля загрузил, в хтмл коде прописал - создал в форме поле для хтмл и в него засунул код формы, так и не понял куда на сервер отправляет форма данные, пока разбираюсь.. |
Смотрите консоль ошибок (желательно в хроме). Открыть консоль - Ф12 (в маке - "альт + комонд + i")
|
смотрел - он ругается на functions.js из темы и на админ бар.js, моя форма то не при чем получается
|
Из консоли есть ссылки на файлы. там указано в каком файле ошибка и причину ошибки. Выложите проблемный код.
|
// Enable menu toggle for small screens. ( function() { var nav = $( '#primary-navigation' ), button, menu; if ( ! nav ) { return; } button = nav.find( '.menu-toggle' ); if ( ! button ) { return; } // Hide button if menu is missing or empty. menu = nav.find( '.nav-menu' ); if ( ! menu || ! menu.children().length ) { button.hide(); return; } $( '.menu-toggle' ).on( 'click.twentyfourteen', function() { nav.toggleClass( 'toggled-on' ); } ); } )(); На 20,21 строчке ошибки, Undefined is not a function говорит Находится ошибка в файле functions.js от стандартной темы Wordpress "undefined" != typeof jQuery ? ("undefined" == typeof jQuery.fn.hoverIntent && !function(a) { a.fn.hoverIntent = function(b, c, d) { var e = {interval: 100,sensitivity: 7,timeout: 0}; e = "object" == typeof b ? a.extend(e, b) : a.isFunction(c) ? a.extend(e, {over: b,out: c,selector: d}) : a.extend(e, {over: b,out: b,selector: c}); var f, g, h, i, j = function(a) { f = a.pageX, g = a.pageY }, k = function(b, c) { return c.hoverIntent_t = clearTimeout(c.hoverIntent_t), Math.abs(h - f) + Math.abs(i - g) < e.sensitivity ? (a(c).off("mousemove.hoverIntent", j), c.hoverIntent_s = 1, e.over.apply(c, [b])) : (h = f, i = g, c.hoverIntent_t = setTimeout(function() { k(b, c) }, e.interval), void 0) }, l = function(a, b) { return b.hoverIntent_t = clearTimeout(b.hoverIntent_t), b.hoverIntent_s = 0, e.out.apply(b, [a]) }, m = function(b) { var c = jQuery.extend({}, b), d = this; d.hoverIntent_t && (d.hoverIntent_t = clearTimeout(d.hoverIntent_t)), "mouseenter" == b.type ? (h = c.pageX, i = c.pageY, a(d).on("mousemove.hoverIntent", j), 1 != d.hoverIntent_s && (d.hoverIntent_t = setTimeout(function() { k(c, d) }, e.interval))) : (a(d).off("mousemove.hoverIntent", j), 1 == d.hoverIntent_s && (d.hoverIntent_t = setTimeout(function() { l(c, d) }, e.timeout))) }; return this.on({"mouseenter.hoverIntent": m,"mouseleave.hoverIntent": m}, e.selector) } на первой строчке ошибка, тоже undefined is not a fucntion находится в файле admin-bar.min.js |
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, updates: document.getElementById("updates").value, tagname: document.getElementById("tagname").value, }; на 7 строке ошибка с апдейтс гвоорит считать не может исправил на check1 и check2 , то бишь на id, а тто был label указан случайно, теперь другая ощшибка GET http://vmazal.mcdir.ru/someServerUrl...es=on&tagname= 404 (Not Found) jquery.min.js:formatted:2702 c.extend.ajax jquery.min.js:formatted:2702 (anonymous function) sliding.form.js:153 c.event.handle jquery.min.js:formatted:997 j.handle.o а anonymous function он про вот эту гвоорит $.ajax({ url: "someServerUrl", method: "post", data: dataToServer, success: function () {/* Успех! */}, error: function () {/* Неудача! */} }); |
Цитата:
|
tsigel,
понял! сейчас попробую так,спасибо! |
tsigel,
запрос должен приходить в этот sendEmail.php,который я создал, в корне сервера лежит,да и команда видно,что на файл,что в корне ссылается, но он пуст,да и вообще кнопка теперь просто нажимается и ничего не происходит, права доступа на php пустой выставлены. интересует ещё,почему форма так сбилась сама-кривая стала, но это уж потом |
Одна из ошибок которые у вас есть в консоли вероятно новая. Ошибки в js ведут к прекращению выполнения потока, что в свою очередь ведет к тому что некоторые вещи которые должны были выполниться после места с ошибкой - не выполняются. То есть вероятно что валидация форм и её расстановка были сделаны с помощью jQuery UI и ошибка в коде не дает этим компонентам полноценно проинициализироваться. Из-за этого не корректное отображение формы и не работает валидация. Вообще пока вы не устраните ошибки js можете ловить неожиданные глюки, так что в первую очередь я рекомендую вам разобраться с ошибками. Только потом уже отлаживать AJAX связь клиента с сервером.
|
tsigel,
пытаюсь устранить.. это может быть связано с тем,что я размещаю эту форму на странице под движком wordpress'a , есть вообще информация о том,может ли wordpress с этим справиться? заметил особенность- когда хтмл код размещаю в виджет создания формы, а форму на страницу - то по высоте и ширине форма нормальная, не работает проверка заполненности полей, форма сама кривая, но работает ползунок выбора цены и пишет значения когда размещаю просто на странице кодом, то проверка формы работает, ширина и высота пляшет невероятно, сама форма более менее ровная, за исключением того,что почему-то на вкладке оплата под оплатой выскакивает отправить,хотя она последняя , и ползунок цены показывает постоянно значение 1,куда бы его не двигал вот форма работает тут http://vmazal.mcdir.ru/123-2 |
tsigel,
создал отдельную html страницу,думаю потом её украсить но форма не отправляет никаких данных, вот она http://vmazal.mcdir.ru/index0.html |
https://api.monosnap.com/image/downl...3pu4PJcZU9qBmL
Отсылаются, вы даже обрабатываете запрос. |
tsigel,
спасибо Вам огромное за участие в решении моей задачи:thanks: в php файле лежит такой код $sendto = "мой ящик на gmail-е"; $usermail = $_POST['email']; $content = nl2br($_POST['msg']); $subject = "New Feedback Message"; $headers = "From: " . strip_tags($usermail) . "\r\n"; $headers .= "Reply-To: ". strip_tags($usermail) . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html;charset=utf-8 \r\n"; $msg = ""; $msg .= "<h2 style="font-weight: bold; border-bottom: 1px dotted #ccc;">New User Feedback</h2>\r\n"; $msg .= "<strong>Sent by:</strong> ".$usermail."\r\n"; $msg .= "<strong>Message:</strong> ".$content."\r\n"; $msg .= ""; но на почту ничего не приходит |
vmazal,
Честно говоря я не шарю в php, так что этот вопрос стоит задать в другой теме или на другом форуме. Тут я вам не помогу. |
tsigel,
ок!!! спасибо огромное |
tsigel,
ещё последний вопрос - чтобы на сайте самом работала форма нормально раскомменитровал div-ы, style в них прописал, размер (высота) формы изменилась, теперь как надо, но форма криво перелистывается все равно, ползунок выбора стоимости не работает, и отправка вообще исчезла - http://vmazal.mcdir.ru/18-2 с чем такое может быть связано не подскажешь? |
vmazal,
Подскажу :) Как вы говорили, на сайте вордпресс. В нем есть jQuery. Он очень старый (версии 1.4.2) и у него нет многих методов которыми вы пользуетесь (например в нем нет метода "on"). Советую вам почитать о jQuery.noConflict(), и подключить разные версии jQ для вордпресса и для себя. |
tsigel,
ок! 1.5.2 попробую подключить и почитаю.. отдуши за помощь,пойду разбираться, осталось немного) |
tsigel,
с кособокостью формы разобрался,единственное,чт о не работает-ползунок выбора цены, неясно почему... отправляются пустые сообщения на почту через php с указанием e-mail оптравителя меня интересует вообще вот что-как вы узнавали , отправляются данные или нет,когда ещё ссылку скидывали? |
В браузерной консоли есть вкладка нетворк, которая показывает всю сетевую активность страницы. Рекомендую пользоваться отладчиком хрома.
|
tsigel,
отладчиком хрома и пользуюсь всегда) он отправляет только с хтмл страницы,а со страницы вдрдпресса не потравляет,ошибку пишет |
в смысле? какую ошибку?
|
Часовой пояс GMT +3, время: 03:03. |