2015-11-08 79 views
0

我是新來的PHP和我正在做一個計費軟件,我的問題是「當他們爲一個郵件計費時發送到一個特定的電子郵件地址」,電子郵件運行完美。當我通過符號&時,發送郵件但在符號文本消失後。我需要使用一些詞,如「客戶名稱&地址」第一個字我只收到文字客戶名稱剩餘&地址不見了。我怎麼解決這個問題?如何將&符號從ajax傳遞給php代碼?

var strVar=""; 
strVar += "<html>\n"; 
strVar += "<body>\n"; 
strVar += "\n"; 
------ 
------ 
strVar += "<div>\n"; 
strVar += "<center>Customer Name & Address<br><\/center>\n"; 
strVar += "<\/div>\n"; 
strVar += "<\/body>\n"; 
strVar += "<\/html>\n"; 
strVar += "\n"; 

     $.ajax({ 
      async: false, 
      url: "sendmail.php", 
      data: "htmldata="+strVar , 
      type: "POST", 
      success: function(resp) { 
       debugger; 

       alert("Message Sent Successfully"); 

      }, 
      error: function(e) { 
       console.dir("Contact Administrator"); 
      } 
     }); 

在服務器端我使用normail PHPMailer的概念。

+1

除了你的問題,但永遠不會使用異步:錯誤***。這是非常糟糕的做法,因爲它會掛起UI直到請求完成,導致瀏覽器看起來像崩潰了。 –

+0

@RoryMcCrossan你是對的,但我需要在發送郵件後更新數據庫中的值。 –

+0

這仍然沒有理由使用'async:false'。在「成功」處理程序中調用一個函數,使數據庫更新。 –

回答

1

考慮這個小而重要的變化:

data: { 
    htmldata: strVar 
} 

這將需要您的數據是正確編碼您的文章裏照顧。

除此之外:爲什麼要在客戶端創建html並將其發送到服務器?

+0

因爲,我喜歡客戶端代碼。我不熟悉php。感謝您的回答。這是工作。 –

+0

@MerbinJoe但你知道這意味着客戶端可以提供任何HTML代碼,一些壞女孩感覺像試一試?這聽起來像是一種安全鴻溝。你根本無法依靠客戶交出的東西。 – arkascha

+0

感謝您的建議,我會將其更改爲服務器端代碼。 –