Ajax контактная форма в одностраничном HTML5 дизайне не работает

Я приобрел веб-шаблон, но нет поддержки после покупки. Это одностраничный дизайн HTML5. Кнопки меню ссылаются на якоря страниц в index.html (page_ABOUT, page_SERVICES и т. Д.). Сайт спроектирован таким образом, что привязки связанных страниц плавно перемещаются между статическими z-индексированными изображениями. Рабочая демонстрация шаблона МОЖНО УВИДЕТЬ ЗДЕСЬ.

Моя проблема связана с привязкой страницы about_CONTACTS. У меня есть другие контактные страницы на других сайтах, которые работают хорошо, но это страницы PHP (т.е. contact.php). Чтобы оставаться в рамках этого дизайна, мне нужно иметь возможность настроить функцию about_CONTACTS на одной HTML-странице. (Выбор создания отдельной контактной страницы PHP нарушает функцию слайда дизайна и вызывает перезагрузку страницы.) Блок кода для формы страницы about_CONTACTS:

<form id="ajax-contact-form" action="javascript:alert('success!');">
<div class="clear"></div>
<label>Your full name:</label>
<INPUT class="textbox left " type="text" name="name" value="">
<div class="clear"></div>
<label >E-Mail:</label>
<INPUT class="textbox left" type="text" name="email" value="">
<div class="clear"></div>
<label >Phone Number:</label>
<INPUT class="textbox left" type="text" name="phone" value="">
<div class="clear"></div>
<label >Message:</label>
<TEXTAREA class="textbox left" NAME="content" ROWS="5" COLS="25"></TEXTAREA>
<div class="clear"></div>
<label>Captcha:</label>
<img src="captcha/captcha.php" style="margin:3px 0px; width:100px; height:32px; float:left;">
<INPUT class="textbox" type="text" name="capthca" value="" style=" width:90px; float:left; margin-left:10px; margin-top:2px">
<div class="clear"></div>
<INPUT class="pin" type="submit" name="submit" value="submit">
</form>

JavaScript между тегами head:

<script type="text/javascript">
$(document).ready(function()
{
$("#ajax-contact-form").submit(function() {
var str = $(this).serialize();
$.ajax({
type: "POST",
url: "contact.php",
data: str,
success: function(msg)
{
if(msg == 'OK') // Message Sent? Show the 'Thank You' message and hide the form
{
result = '<div class="notification_ok">Your message has been sent. Thank you!<br> <a href="#" onclick="freset();return false;">send another mail</a></div>'; $("#fields").hide();
}
else {
result = msg;
}
$("#note").html(result);
}
});
return false;
});
});

function freset()
{
$("#note").html('');
document.getElementById('ajax-contact-form').reset();
$("#fields").show();
}

</script>

Форма вызывает contact.php, содержимое которого МОЖНО УВИДЕТЬ ЗДЕСЬ. Contact.php требует включения contact_config.php (содержимое файла МОЖНО УВИДЕТЬ ЗДЕСЬ) и functions.php (содержание МОЖНО УВИДЕТЬ ЗДЕСЬ).

Я разместил адрес электронной почты для отправки / получения в contact_config.php:

<?php
// To
define("WEBMASTER_EMAIL", 'email@companyname.com');
?>

Как так:

<?php
// To
define("WEBMASTER_EMAIL", 'me@mydomain.com');
?>

Не могли бы вы сообщить, почему кнопка «Отправить» не реагирует на щелчок и почему письмо не отправляется? Я никогда не использовал этот тип формы раньше, и хотя я уверен, что мне нужно редактировать что-то еще, я не знаю, что и где редактировать. (Я позаботился о том, чтобы убедиться, что капчи введены правильно. Я не получаю ни сообщений об ошибках, ни сообщений об успехе. При попытке отправить сообщение через контактную форму ответа нет вообще.)

1

Решение

Согласно комментариям, решение состоит в следующем:

а) изменить свой тег формы с

<form id="ajax-contact-form" action="javascript:alert('success!');">

в

<form id="ajax-contact-form" action="contact.php" method="post">

Ваша версия недействительна — действие должно указывать, куда форма отправляет свои данные, и метод необходим для принудительной обратной передачи (в противном случае он использует GET по умолчанию, с которым ваш PHP не настроен для работы (вы читаете $_POST переменные).

б) проверить значения $_SESSION['captcha_keystring'] а также $_POST["capthca"] чтобы убедиться, что они действительно содержат то, что вы думаете, что они делают. например

например (только для целей отладки — не оставляйте это для производственного использования!):

$error .= "Captcha keystring: ".strtolower($_SESSION['captcha_keystring']);
$error .= " User-entered captcha: ".strtolower($_POST['capthca']);

if(isset($_SESSION['captcha_keystring']) && strtolower($_SESSION['captcha_keystring']) != strtolower($_POST['capthca']))
{
$error .= "Incorect captcha.<br />";
}

Также убедитесь, что в текстовом поле HTML-капчи указан правильный атрибут name (name="capthca") чтобы соответствовать вашему PHP $_POST["capthca"],

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector