我使用wordpress的后端允许客户填写表单并在电子邮件中发送文本区域的内容。
我的问题是,当我单击send时,文本区域中的字符串将转换为Line1%0ALine2%0ALine3
(作为encodeURIComponent()的结果)并将其发布到我的PHP函数。当这是在电子邮件中发出的,这就是我得到的。
我知道我需要以某种方式对此进行解码/编码,我认为我几乎就在那里。
到目前为止,我的JS看起来像这样。
tinyMCE.triggerSave();
var messagetext = jQuery('textarea#emailMessage').val();
var newEmailForm = [];
var email = jQuery('input.email').val();
var title = jQuery('input.title').val();
var emailMessage = encodeURIComponent(messagetext);
newEmailForm.push([email,title,emailMessage]);
var datastring = {
newEmailForm: newEmailForm,
properties: properties
};
jQuery(function(){
jQuery.ajax({
type:'POST',
data:{
action: 'elegantSendEmail',
datastring: datastring
},
url: ajaxurl,
success: function(data){
alert(data);
}
})
})
使用encodeURIComponent()发布消息文本,如下所示:Line1%0ALine2%0ALine3
我的PHP看起来像。
function elegantSendEmail() {
$to = $_POST['datastring']['newEmailForm'][0][0];
$title = $_POST['datastring']['newEmailForm'][0][1];
$messagetext = $_POST['datastring']['newEmailForm'][0][2], true);
$properties = $_POST['datastring']['properties'];
//Send the email and get a report back
$sent = elegeantSend($to,$messagetext,$properties);
}
我只是不知道如何将字符串转换为<br>
或\n
等。
TIA
答案 0 :(得分:0)
你可以使用 rawurldecode 函数它会在php中解码,用 encodeURIComponent()
编码答案 1 :(得分:-1)
您可以使用str_replace
示例:
$messagetext = $_POST['datastring']['newEmailForm'][0][2], true);
$convertedMessageText = str_replace('%0A', "\n", $messagetext);
PS :这是用于将%0A
替换为新行(如问题),而不是其他