douhuang2673 2016-09-30 18:20
浏览 92
已采纳

API不会从ajax调用中获取任何发布数据

I am trying to send data in ajax post call. but this doesnot sent any data.

My html form is

<form>
  <div class="row">
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="firstname">Firstname</label>
        <input id="firstname" type="text" class="form-control" id="firstname">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="lastname">Lastname</label>
        <input id="lastname" type="text" class="form-control" id="lastname">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="email">Email</label>
        <input id="email" type="text" class="form-control" id="email">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label for="subject">Subject</label>
        <input id="subject" type="text" class="form-control" id="subject">
      </div>
    </div>
    <div class="col-sm-12">
      <div class="form-group">
        <label for="message">Message</label>
        <textarea id="message" class="form-control"></textarea>
      </div>
    </div>

    <div class="col-sm-12 text-center">
      <a type="submit" class="btn btn-template-main" onclick="sendMail()"><i class="fa fa-envelope-o"></i> Send message</a><span id="sentMessage" style="color:green"></span>

    </div>
  </div>
  <!-- /.row -->
</form>

My script is

function sendMail(){
  var name = document.getElementById ("firstname").value + " " + document.getElementById ("lastname").value;
  var subject = document.getElementById ("subject").value;
  var email = document.getElementById ("email").value;
  var message = document.getElementById ("message").value;
  var body = "<h3>Message from "+ name +"</h3>"+
      "<h4>Email: "+ email +"</h4>"+
      "<p><strong>Body : </strong> "+ message +"</p>";
  var email= 'to=tsmrafee@gmail.com&subject=' + subject + '&body=' + body;
  console.log("done");
  $.ajax({
    url: 'http://trimarkworld.com/email.php',
    method: 'POST',
    data: {
      email: email
    },
    success: function(result){
      console.log("done");
      $("#sentMessage").html("Email has been Sent");
    }
  });

}

my php code is

if(isset($_POST['email'])){
    echo json_decode($_POST['email']);
}

This does not print anything..I think there is a problem in the ajax call.please help..

  • 写回答

3条回答 默认 最新

  • dongshuo6185 2016-09-30 18:47
    关注

    When you send data with $.ajax, it's not sent as JSON, it's sent in application/x-www-form-urlencode format. So there's no need to call json_decode(). Just use:

    echo $_POST['email'];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题