使用AJAX解析多个js变量到php

时间:2017-12-23 07:10:41

标签: javascript php jquery mysql ajax

我想将多个变量保存到数据库,但大多数变量都是使用java-script / jquery计算的。所以我使用.js / ajax和.php这样做,但我这样做会出错。这是我的代码示例 -

JS / Jquery-

$(function(){
  $("#btn").on('click', function() {
    var name =  $("#myname").val();
    var yoursex = $("input[name='gender']:checked").val();
    var date = new Date($('#dob').val());
    var c_age = calc_age();
    var social_age = calcSocialAge();

$.post("insert_data.php", {
    name: name,
    sex: yoursex,
    dob: date,
    crono_age: c_age,
    social_age: social_age
},
      function(data, status){
          alert("Data: " + data + "\nStatus: " + status);
      });
});
});

insert_data.php

<? php  
include_once('connect-mysql.php') ;

      $name = $_post['name'];
      $sex = $_post['sex'];
      $dob = $_post['dob'];
      $c_age = $_post['crono_age'];
      $s_age = $_post['social_age'];



     $sql = " INSERT INTO `patient_info` (`pt_id`, `pt_name`, `pt_gender`, `Pt_dob`, `pt_C_age`, `pt_s_age`)
    VALUES ('', $name,$sex, $dob, $c_age, $c_age, $s_age );";

     ?>

当我应用此代码但收到如下错误时

数据:已成功连接
注意 E:\ xampp \ htdocs \ insert_data.php 4到8 的未定义变量:_post
现状:成功

我是AJAX和PHP的新手,请帮助解决这个问题。

2 个答案:

答案 0 :(得分:1)

$_post不是$_POST全部更改为$_POST,还会检查值

  $name = isset($_POST['name'])?$_POST['name']:'';
  $sex = isset($_POST['sex'])?$_POST['sex']:'';
  $dob = isset($_POST['dob'])?$_POST['dob']:'';
  $c_age = isset($_POST['crono_age'])?$_POST['crono_age']:'';
  $s_age = isset($_POST['social_age'])?$_POST['social_age']:'';

并且date对象不是任何字符串值,正如您期望的那样Y-m-dd-m-Y,它类似于Date 2017-12-23T07:18:08.909Z

var date = new Date($('#dob').val());//be sure about date value

您没有使用quotes在查询中插入字符串类型值,但我建议插入使用mysqli或pdo。以下是了解mysqli的一些链接:

mysqli_prepare

mysqli_stmt_bind_param

Prepared Statements in MySQLi

答案 1 :(得分:0)

是否可以像使用$_POST['name']而不是$_post['name']一样简单?那些超长冰球是区分大小写的。

此外,您应该进行某种错误检查,或检查一个或多个字段是否留空。 isset($_POST['name'])empty($_POST)将为您提供帮助。