我正在使用 ajax 联系表格,下载自:http: //youhack.me/2010/07/22/create-a-fancy-contact-form-with-css-3-and-jquery/
一切正常,除了 UTF,因为我在提交时不能使用西里尔符号。
php:
$name = $_POST['name']; // contain name of person
$email = $_POST['email']; // Email address of sender
$web = $_POST['web']; // Your website URL
$body = $_POST['text']; // Your message
$receiver = "receiver@domain.com" ; // hardcorde your email address here - This is the email address that all your feedbacks will be sent to
if (!empty($name) & !empty($email) && !empty($body)) {
$body = "Name: {$name}\n\nSubject: {$web}\n\nMessage: {$body}";
$send = mail($receiver, 'Contact from domain.com', $body, "From: {$email}");
if ($send) {
echo 'true'; //if everything is ok,always return true , else ajax submission won't work
}
}
它使用 jquery.validationEngine-en 进行验证。我的 html 在标题中已经有 "Content-Type" content="text/html; charset=utf-8" 。
我是 php 和 jquery 的新手,所以我会提供一些指导以在提交时使 UTF-8 工作。谢谢 :)
编辑:当我尝试在必填字段上使用西里尔字符(čšćđ)时,我收到 ajax 输入错误“请仅使用字母”。如果我在非必填字段上提交带有西里尔字符的表格,我会收到并发送电子邮件,除西里尔字母外,所有字母都显示正常,如下所示:Å¡。
编辑2:当我将收件人设置为gmail(网络邮件)时,西里尔字符显示正常,除了在一个字段中,Ajax 不允许我使用它们(来自 Reinder 答案的正则表达式)。
当我在 Outlook(本地)中设置收件人并提交表单时,没有一个西里尔字符不显示,例如:ÄĹĄ oÄa ĹĄ ÄŽŠÄ
解决感谢 Reinder 的指导和大卫!今天会解决的:)