Я хочу сохранить несколько переменных в базе данных, но большая часть переменной вычисляется с использованием 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 );"; ?>
когда я применяю этот код, но получаю ошибку, как показано ниже –
Данные: успешно подключено
Примечание . Неопределенная переменная: _post в E: \ xampp \ htdocs \ insert_data.php в строке 4-8.
Статус: успех
Я совершенно новый для AJAX и PHP, пожалуйста, помогите решить проблему.
$_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
– объект, а не любое строковое значение, как вы ожидаете, например, Ymd
или Ymd
, это что-то вроде 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
Подготовленные утверждения в MySQLi
Может ли быть так же просто, как использовать $_POST['name']
вместо $_post['name']
? Эти суперглобалы чувствительны к регистру.
Кроме того, вы должны выполнить некоторую проверку ошибок или проверить, осталось ли одно или несколько полей пустым. isset($_POST['name'])
и empty($_POST)
поможет вам в этом.