2017-12-23 1 views
1

여러 변수를 데이터베이스에 저장하고 싶지만 대부분의 변수는 java-script/jquery를 사용하여 계산됩니다. 그래서 .js/ajax와 .php를 사용했지만 그렇게하기 위해 오류가 발생했습니다. 여기에 내 코드 예 -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); 
     }); 
}); 
}); 

이 코드를 적용하지만, 다음과 같은 오류를 얻고 때

<? 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);"; 

    ?> 

insert_data.php - 데이터

: 성공적으로 연결되었습니다.
알림 : 정의되지 않은 변수 : _post in E : \ XAMPP \ htdocs를 \ 4 상태

8 라인
insert_data.php : 내가 AJAX 및 PHP 아주 새로운 오전 성공

문제를 해결하는 데 도움을 주시기 바랍니다.

+0

'$ _POST [ 'name']'.... –

+0

POST는 $ _POST로 정의 된 슈퍼 전역 배열 –

답변

1

$_post하지 $_POST 변경 모든 $_POST에, 당신은 Y-m-d 또는 d-m-Y 같은 기대로도되지 않은 문자열 값을 객체되어 값을

$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을 확인, 여기 Date 2017-12-23T07:18:08.909Z

같은 것입니다
var date = new Date($('#dob').val());//be sure about date value 

검색어에 문자열 유형 값을 삽입하는 데 quotes을 사용하고 있지 않지만, 삽입 해주십시오. 전자 mysqli 또는 pdo. $_POST['name'] 대신 $_post['name']을 사용하는 등

mysqli_prepare

mysqli_stmt_bind_param

Prepared Statements in MySQLi

0

그것은 간단 할 수 없습니다 : 여기 mysqli에 대해 배울 수있는 몇 가지 링크는 무엇입니까? 이러한 슈퍼 전역은 대소 문자를 구분합니다.

또한 오류 검사를 수행하거나 하나 이상의 입력란이 비 었는지 확인해야합니다. isset($_POST['name'])empty($_POST)이 도움이 될 것입니다.

+0

나도 똑같은 말을 Babcock – OIIO

관련 문제