Javascript Ajax post无法使用php文件

Javascript Ajax post无法使用php文件,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我正在尝试将php api与ajax结合使用来创建新联系人。当我想将postContact.php文件与ajax一起使用时,每次查询都会失败,但是如果我直接在浏览器中编写post url,它就会工作 我在网上查了一下,但没有找到解决办法 我直接查看了php函数 我检查了数据格式是否正确 我直接在ajax代码中输入数据 我更改contentType和dataType 我在这里发帖之前看过了 我删除了数据类型和内容类型 我通过“POST”更改this.method,通过api的url更改this.

我正在尝试将php api与ajax结合使用来创建新联系人。当我想将postContact.php文件与ajax一起使用时,每次查询都会失败,但是如果我直接在浏览器中编写post url,它就会工作

我在网上查了一下,但没有找到解决办法

  • 我直接查看了php函数
  • 我检查了数据格式是否正确
  • 我直接在ajax代码中输入数据
  • 我更改contentType和dataType
  • 我在这里发帖之前看过了
  • 我删除了数据类型和内容类型
  • 我通过“POST”更改this.method,通过api的url更改this.action
添加联系人的HTML表单

$("#addContact_form").submit(function(event){

  $('#addContactDialog').modal('hide');
  loader('show','Sauvegarde en cours');

  event.preventDefault();

  console.log(this.action+$(this).serialize()); //this print https://..../php/postContact.phpnom=charle%20&prenom=edouard&fonction=eleve&telephone=0000&couriel=sdf%40dfg.g&id_lycee=2

  $.ajax({
    method: this.method,
    url:  this.action,
    data: $(this).serialize(),
    error: function(jqXHR, textStatus, errorThrown){
      loader('hide');
      errorAlert(errorThrown); 
    },
    success: function (data) {
      loader('hide');
      var message = data.message;
      if(message.indexOf('failed') != -1){
        errorAlert(data.message);
      }else{
        successAlert(data.messages);
      }
    }
  });
});

笔名
名词
功能
电话
地址邮件
莱西
塞尔蒙纳大学
接近
保存更改
Ajax AddContact

$("#addContact_form").submit(function(event){

  $('#addContactDialog').modal('hide');
  loader('show','Sauvegarde en cours');

  event.preventDefault();

  console.log(this.action+$(this).serialize()); //this print https://..../php/postContact.phpnom=charle%20&prenom=edouard&fonction=eleve&telephone=0000&couriel=sdf%40dfg.g&id_lycee=2

  $.ajax({
    method: this.method,
    url:  this.action,
    data: $(this).serialize(),
    error: function(jqXHR, textStatus, errorThrown){
      loader('hide');
      errorAlert(errorThrown); 
    },
    success: function (data) {
      loader('hide');
      var message = data.message;
      if(message.indexOf('failed') != -1){
        errorAlert(data.message);
      }else{
        successAlert(data.messages);
      }
    }
  });
});
由ajax调用的php文件

这不是我的,所以我不知道它是怎么工作的


函数PostContact()

public function post contact($nom、$prenom、$fonction、$telephone、$couriel、$id_-lycee){
$REK2=$this->conn->prepare('SELECT*FROM contact,其中lycee\u contact=:id\u lycee');
$REK2->execute(数组('id\u lycee'=>$id\u lycee));
$donnees2=$req2->fetchAll();
$num=计数($donnees2);
//如果将联系人添加到此条目->更新
如果($num>0){
$req=$this->conn->prepare('updatecontact SET nom=:nom,prenom=:prenom,fonction=:fonction,telephone=:telephone,couriel=:couriel,其中lycee_contact=:id_lycee');
$result=$req->execute(数组('nom'=>$nom',prenom'=>$prenom',fonction'=>$fonction',telephone'=>$telephone',couriel'=>$couriel',id\u lycee'=>$id\u lycee));
如果($结果){
回声{};
echo的“信息”:“联系aétésauvegardé”;
回声'}';
}否则{
回声{};
echo的“信息”是:“你的错误就在你身边,我的错就在你身边”;
回声'}';
}
}else{///陶瓷接触
$req=$this->conn->prepare('INSERT-INTO-contact-SET-nom=:nom,prenom=:prenom,fonction=:fonction,telephone=:telephone,couriel=:couriel,lycee\u contact=:id\u lycee');
$result=$req->execute(数组('nom'=>$nom',prenom'=>$prenom',fonction'=>$fonction',telephone'=>$telephone',couriel'=>$couriel',id\u lycee'=>$id\u lycee));
如果($结果){
回声{};
echo的“信息”:“联系aétésauvegardé”;
回声'}';
}否则{
回声{};
echo的“信息”是:“我的错就在你身边,我的错就在你身边”;
回声'}';
}
}
}
当ajax方法被执行时,它进入成功回调,但是它返回api的错误消息,并且数据没有被添加


我希望ajax函数调用api中的execute postContact.php文件来保存联系人

多亏了它,我才解决了我的问题

他的回答是:

表单显示method=“post”,但php尝试从$\u GET获取值。尝试>将$\u GET['…']更改为$\u POST['…']


我按照他的指示做了,现在开始工作了

你得到了什么错误?你告诉服务器你正在发送JSON,但是你的
数据
是一个查询字符串。删除
contentType
dataType
。不要过度设计这个。保持简单。如果它转到成功回调,这个问题就解决了。如果您的API不能正确处理表单数据,那是另一个问题。即使继续重写这个问题是有意义的,您也必须发布您的PHP代码。您的表单显示
method=“post”
,但PHP尝试从
$\u GET
获取值。尝试将
$\u GET['…']
更改为
$\u POST['…']
就是这样!我怎样才能把你的回答说成是被接受的呢?