A-AA+then

ajax contact

1,588

สอบถาม อ. ครับ ผมลองใช้ ajax contact โค๊ดด้านล่างครับ รายละเอียดส่งไปยังเมล์อ่านภาษาไทยได้ แต่ชื่อเรื่องและชื่อผู้ส่งในหน้าแรกของ hotmail.com ไม่เป็นภาษาไทยครับ อ่านไม่ออกเลยครับ ช่วยดูให้หน่อยครับ

ไฟล์ AjaxPHPContactForm1.php
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head>
<script language="JavaScript">
    var HttPRequest = false;

    function doCallAjax() {
    HttPRequest = false;
    if (window.XMLHttpRequest) {// Mozilla, Safari,...
    HttPRequest = new XMLHttpRequest();
    if (HttPRequest.overrideMimeType) {
    HttPRequest.overrideMimeType('text/html');
    }
    } else if (window.ActiveXObject) { // IE
    try {
    HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
       HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
   
    if (!HttPRequest) {
    alert('Cannot create XMLHTTP instance');
    return false;
    }
 
    var url = 'AjaxPHPContactForm2.php';
    var pmeters = "tTo=" + encodeURI( document.getElementById("txtTo").value) +
      "&tSubject=" + encodeURI( document.getElementById("txtSubject").value ) +
      "&tDescription=" + encodeURI( document.getElementById("txtDescription").value ) +
      "&tFormName=" + encodeURI( document.getElementById("txtFormName").value ) +
      "&tFormEmail=" + encodeURI( document.getElementById("txtFormEmail").value );

   HttPRequest.open('POST',url,true);

   HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   HttPRequest.setRequestHeader("Content-length", pmeters.length);
   HttPRequest.setRequestHeader("Connection", "close");
   HttPRequest.send(pmeters);
   
   
   HttPRequest.onreadystatechange = function()
   {

    if(HttPRequest.readyState == 3)  // Loading Request
    {
     document.getElementById("mySpan").innerHTML = "Now is Loading...";
    }

    if(HttPRequest.readyState == 4) // Return Request
    {

     if(HttPRequest.responseText == 'Y')
     {
      document.getElementById("mySpan").innerHTML = "Email Sending";
      document.getElementById("tbContact").style.display = 'none';
     }
     else
     {
      document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
     }
    }
    
   }

    }
 </script>
<body>
<h1>Contact Form</h1>
<form name="frmMain">
<span id="mySpan"></span>
<br>
<table width="343" border="1" id="tbContact">
  <tr>
    <td>To</td>
    <td><input name="txtTo" type="text"  id="txtTo" value=xxx@hotmail.com </td>
  </tr>
  <tr>
    <td>Subject</td>
    <td><input name="txtSubject"  id="txtSubject" type="text"></td>
  </tr>
  <tr>
    <td>Description</td>
    <td><textarea name="txtDescription"  id="txtDescription" cols="30" rows="4"></textarea></td>
  </tr>
  <tr>
    <td>Form Name</td>
    <td><input name="txtFormName" id="txtFormName" type="text"></td>
  </tr>
  <tr>
  <tr>
    <td>Form Email</td>
    <td><input name="txtFormEmail" id="txtFormEmail" type="text"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input name="btnSend" type="button" id="btnSend" OnClick="JavaScript:doCallAjax();" value="Send"></td>
  </tr>
</table>

</form>
</body>
</html>


ไฟล์รับค่า AjaxPHPContactForm2.php

<?php
 

 $strTo = trim($_POST["tTo"]);
 $strSubject = trim($_POST["tSubject"]);
 $strDescription = trim($_POST["tDescription"]);
 $strFormName = trim($_POST["tFormName"]);
 $strFormEmail = trim($_POST["tFormEmail"]);
 
 //*** Check To ***//
 if(trim($strTo) == "")
 {
  echo "<font color=red>**</font> Plase input [To]";
  exit();
 }
 
 //*** Check Subject ***//
 if(trim($strSubject) == "")
 {
  echo "<font color=red>**</font> Plase input [Subject]";
  exit();
 }
 
 //*** Check Description ***//
 if(trim($strDescription) == "")
 {
  echo "<font color=red>**</font> Plase input [Description]";
  exit();
 }
 
 //*** Check From Name ***//
 if(trim($strFormName) == "")
 {
  echo "<font color=red>**</font> Plase input [From Name]";
  exit();
 }

 //*** Check From Email ***//
 if(trim($strFormEmail) == "")
 {
  echo "<font color=red>**</font> Plase input [From Email]";
  exit();
 }

 $strHeader = "Content-type: text/html; charset=UTF-8\n"; // or UTF-8 //
 $strHeader .= "From: ".$strFormName."<".$strFormEmail.">\nReply-To: ".$strFormEmail."";
 $strMessage = nl2br($strDescription);
 $flgSend = @mail($strTo,$strSubject,$strMessage,$strHeader); // @ = No Show Error //
 if($flgSend)
 {
 echo "Y";
 }
 else
 {
 echo "<font color=red>**</font> Email Cannot Send";
 }

?>

1 ความคิดเห็น

โค้ดนี้คงมีปัญหานั้นแหละครับ การแก้ไขให้แปลงเป็น TIS-620 ก่อนครับ หรือไม่ก็ส่งด้วย phpmailer
1
^