Jquery,Php$\u POST值始终为空

Jquery,Php$\u POST值始终为空,php,jquery,Php,Jquery,一旦用户单击“添加”按钮,我想在我的数据库中插入数据。我使用Jquery获得了值: 以下是Jquery代码: $.post('process.php', { name: 'aaaaa', id: '1' }, function(data) { alert(data); }); 下面是Php代码: 这个代码永远不会执行 if((!empty($_POST['name']))&&(!emp

一旦用户单击“添加”按钮,我想在我的数据库中插入数据。我使用Jquery获得了值: 以下是Jquery代码:

 $.post('process.php',
      {
          name: 'aaaaa',
          id: '1'
      }, function(data) {
          alert(data);
  });
下面是Php代码:

这个代码永远不会执行

  if((!empty($_POST['name']))&&(!empty($_POST['id']))){
      $nomp = $_POST['name'];
      $idtp=$_POST['id'];
      echo $nomp;
      $conn = dbConn();
      $add="Insert into prod(nomp,idtp) values ('".$nomp."',".$idtp.") ";
      $conn->query($add);
      $conn=null;
}
我想了解为什么以及我应该做什么来解决这个问题

它必须如下所示:

if((int)$_POST['id']>0 && strlen($_POST['name'])>0){
      $nomp = $_POST['name'];
      $idtp=$_POST['id'];
      echo $nomp;
      $conn = dbConn();
      $add="Insert into prod(nomp,idtp) values ('".$nomp."',".$idtp.") ";
      $conn->query($add);
      $conn=null;
}
对js函数进行更改:

$.post('process.php',
      {
          name: 'aaaaa',
          id: '1'
      }, function(data) {
          alert(data);
  }, 'json');

我总是验证是否设置了,而不是空:

if(isset($_POST['name'])&&isset($_POST['id'])){
  //then in here I throw a foreach validating and sanitizing every required field in case that everyone are
}else{
   //throw error 
}
我认为还有一点非常重要,至少在使用ajax post时进行测试或消除bug,这样可以快速地消除错误


告诉我这是否适合你

您忘了在第二个值($idtp)周围加引号


你以错误的方式使用空函数。isset也不适用于我,空函数的问题是什么!在浏览器开发工具网络中检查实际请求,查看发送的内容和状态。在两个端点上都添加一些错误处理,虽然可以,但是echo$nomp;还是不行!为什么“必须”是这样?不一定是这样,有时空函数甚至计算的不仅仅是传递的值,甚至更多。如果块没有得到执行,最好尝试其他方法。当然是这样,但是如果您首先检查是否设置了,那么您可以避免变量出现“未定义”错误,以防它们没有post(这主要是为了有一个干净的日志),然后在内部验证是否为空,它可能为空
 $add="Insert into prod(nomp,idtp) values ('".$nomp."',’".$idtp."’) ";