Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改PHP电子邮件表单(返回部分)以匹配Javascript和html模板?_Javascript_Php_Html_Json_Ajax - Fatal编程技术网

如何更改PHP电子邮件表单(返回部分)以匹配Javascript和html模板?

如何更改PHP电子邮件表单(返回部分)以匹配Javascript和html模板?,javascript,php,html,json,ajax,Javascript,Php,Html,Json,Ajax,最近我发布了一个问题,读了很多类似的主题,但没有一个解决了我的问题 我的问题是,当电子邮件成功发送(我检查它)时,HTML的一部分没有运行,整个页面也没有作为主模板刷新:(我想当发送回HTML时,我无法发送PHP的响应)。我的目标是将PHP文件更改为works 在主模板中,电子邮件(发送或失败)的结果如下所示,但在我的版本中,有一个问题如下所示: HTML: 成功您的邮件已发送给我们。 错误发送邮件时出错。 JavaScript: jQuery(文档).ready(函数(e){ “严格使用

最近我发布了一个问题,读了很多类似的主题,但没有一个解决了我的问题

我的问题是,当电子邮件成功发送(我检查它)时,HTML的一部分没有运行,整个页面也没有作为主模板刷新:(我想当发送回HTML时,我无法发送PHP的响应)。我的目标是将PHP文件更改为works

在主模板中,电子邮件(发送或失败)的结果如下所示,但在我的版本中,有一个问题如下所示:

HTML:

成功您的邮件已发送给我们。
错误发送邮件时出错。
JavaScript:
jQuery(文档).ready(函数(e){
“严格使用”;
e(“#联系表”)。验证({
submitHandler:函数{
var o=e(s),
a=e(“#联系成功”),
t=e(“#接触错误”),
r=e(此提交按钮);
r、 按钮(“加载”),例如ajax({
类型:“POST”,
url:o.attr(“操作”),
数据:{
名称:o.find(“#name”).val(),
email:o.find(“#email”).val(),
主题:o.find(“#主题”).val(),
message:o.find(“#message”).val()
},
数据类型:“json”,
完成:功能{
返回“object”==typeof s.responseJSON&“success”==s.responseJSON.response?(a.removeClass(“hidden”)、t.addClass(“hidden”)、o.find(“controled”).val(“”).blur().parent().removeClass(“has success”).removeClass(“has error”).find(“label.error”).removeClass”)、o.find(“controlled”).removeClass”)、a.offset().top-80
PHP:
$mail\u status=mail($mail\u to,$subject,$body\u message,$headers);
如果($mail_status){?>
window.location='contact_page.html#contactSuccess';
window.location='contact_page.html#contactError';

为什么只在php端输出url,然后在javascript端调用所需的脚本:

PHP端

$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) {
    echo "{'url':'contact_page.html#contactSuccess'}";
} else {
    echo "{'url':'contact_page.html#contactError'}";
}
complete: function(){
   ...
   window.location = s.responseJSON.url
   ...
}
Javascript端

$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) {
    echo "{'url':'contact_page.html#contactSuccess'}";
} else {
    echo "{'url':'contact_page.html#contactError'}";
}
complete: function(){
   ...
   window.location = s.responseJSON.url
   ...
}

看到JS部分包含
complete:
,这可能是一些AJAX请求的成功处理程序?您希望响应上存在一些
responseJSON
属性?如果是,为什么?您显示的PHP代码(我假设是响应AJAX请求的代码)不使用JSON响应-它输出HTML代码,确切地说是一个
脚本
元素。@04FS我是这个领域的新手。我想用一个PHP联系人表单在这个模板中不存在的模板创建我自己的网站。我如何解决这个问题?你能帮我更清楚地解释一下吗?@James我测试了它。echo工作并显示在屏幕上,我我想我应该返回success,因为我们在JS return中看到了“object”==typeof s.responseJSON&“success”?我说得对吗?我的问题没有解决!@James I correct,现在我想correct我通过以下代码进行测试:if($mail_status){echo{url:'index.html}contactSuccess};}else{echo{url:'index.html}contactError}“@James infact我不想改变JS,我只想改变PHP来匹配这个JS。这是我的目标。@James,你能帮我吗?真的,我很难过。如果你只改变PHP方法,试着使用:<?PHP header(“Location:{URL}”);?>其中{{URL}是联系人页面。***。请确保在调用这个方法之前不要做任何输出。