2017-12-23 2 views
1

Ich möchte mehrere Variablen in der Datenbank speichern, aber die meisten Variablen werden mit Java-Skript/jquery berechnet. also habe ich .js/ajax und .php benutzt, um dies zu tun, aber ich bekomme Fehler bei diesem Vorgang. hier ist mein Code Beispiel-parse multiple js Variablen zu PHP mit AJAX

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

    ?> 

, wenn ich diesen Code beantrage aber den Fehler wie unten bekommen -

Daten: Erfolgreich verbunden
Hinweis: Undefinierte Variable: _post in E: \ xampp \ htdocs \ insert_data.php on line 4 bis 8

Status: Erfolg

ich ganz neu bin auf AJAX und PHP bitte helfen, das Problem zu beheben.

+0

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

+0

POST ist ein super globales Array definiert als $ _POST –

Antwort

1

$_post nicht $_POST ändern alle $_POST ist, und überprüfen Sie auch Wert

$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']:''; 

Und date ist kein String-Wert-Objekt, wie Sie wie Y-m-d oder d-m-Y erwarten sind, ist es so etwas wie Date 2017-12-23T07:18:08.909Z hier

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

Sie verwenden nicht quotes, um Zeichenfolge-Wert in Ihre Abfrage einzufügen, aber ich schlage vor, uns einzufügen e Mysqli oder PDO. Hier sind einige Links über mysqli zu lernen:

mysqli_prepare

mysqli_stmt_bind_param

Prepared Statements in MySQLi

0

Könnte es so einfach sein wie $_POST['name'] statt $_post['name'] verwenden? Bei diesen Superglobalen wird zwischen Groß- und Kleinschreibung unterschieden.

Außerdem sollten Sie eine Art von Fehlerprüfung durchführen oder prüfen, ob eines oder mehrere Felder leer gelassen wurden. isset($_POST['name']) und empty($_POST) werden Ihnen dabei helfen.

+0

Ich sagte auch dasselbe liebe Babcock – OIIO