2015-11-08 19 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

感谢您的建议,我会将其更改为服务器端代码。 –