Я приобрел веб-шаблон, но нет поддержки после покупки. Это одностраничный дизайн 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');
?>
Не могли бы вы сообщить, почему кнопка «Отправить» не реагирует на щелчок и почему письмо не отправляется? Я никогда не использовал этот тип формы раньше, и хотя я уверен, что мне нужно редактировать что-то еще, я не знаю, что и где редактировать. (Я позаботился о том, чтобы убедиться, что капчи введены правильно. Я не получаю ни сообщений об ошибках, ни сообщений об успехе. При попытке отправить сообщение через контактную форму ответа нет вообще.)
Согласно комментариям, решение состоит в следующем:
а) изменить свой тег формы с
<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"]
,
Других решений пока нет …