【问题标题】:how to make a contact from html form and php page by ajax如何通过ajax从html表单和php页面建立联系
【发布时间】:2016-06-15 11:50:10
【问题描述】:

我制作此表单以将数据发送到另一个域中的 php 页面,但总是导致错误。有人可以解释我的问题吗 我在互联网上搜索了很多次,但我没有找到我的答案 这是我的代码

html:

<form action="#" id="smail" method="post" class="form">
  <input type="text" name="name" value="Your Name *">
  <input type="text" name="mailadd" value="Your E-mail *">
  <textarea name="message" cols="0" rows="0">Your Message *</textarea>
  <input type="submit" value="send message">
</form> 

js:

$('#smail').submit(function(event) {
  event.preventDefault();
  var mail = $("#smail input[name=name]").val();
  var message = $("#smail input[name=mailadd]").val()+' '+$("#smail textarea[name=message]").val();
  $.ajax({
    type: "POST",
    url:"http://cofeebeen.dx.am/email.php",
    crossDomain: true,
    data:{ 
      "mail": mail,
      "message": message, 
    },
    dataType: "text",
    error: function(){
      alert("error")
    }
  }).success(function(result){
      alert(result)
  });
});

php:

<?php
  $subject = $_POST["mail"];
  $msg = $_POST["message"];
  mail("someone@example.com",$subject,$msg);
?>

【问题讨论】:

标签: javascript php jquery html ajax


【解决方案1】:

您的 PHP 代码不正确,我们可以在您的 PHP 页面获取数据,如下所示。

正确代码:

$subject = $_POST["mail"];
$msg = $_POST["message"]

不正确的代码:

$subject = $_POST["name"];
$msg = $_POST["mailadd"]

我希望它现在可以工作。

【讨论】:

  • 另外,请从 PHP 页面返回一些结果,例如 echo 电子邮件结果或 echo1 成功..但我们必须返回一些东西给 ajax 调用。
【解决方案2】:

根据@mpf82 的评论,如果这是一个跨域请求,那会改变一些事情。但是,AJAX 请求当前正在传递 2 个 PHP 发布变量:

...
data:{ 
  "mail": mail,
  "message": message, 
},
...

你参考3:

$_POST['name'];
$_POST['mailadd'];
$_POST['message'];

正如@Reghbendra 所指出的,您引用了不正确的变量名。另外,由于您在 Javascript 中连接了 mailaddmessage,因此您可以在 PHP 中跳过该部分。

因此,您的代码将需要引用通过其正确索引传递的两个 post 变量。

结果代码:

<?php
$subject = $_POST["mail"];
$msg = $_POST["message"];
mail("someone@example.com",$subject,$msg);
?>

您还应该考虑 PHP 邮件函数的标头,以确保它正确发送并得到正确处理。请参阅函数 here 的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多