У меня есть страница с тремя формами, и на этих формах есть отдельные переменные. Страница позволяет пользователю вводить данные, и они будут вставлены в базу данных MySQL для просмотра. У меня есть сценарий:JQuery Ajax Вставка данных в базу данных
Редактировать: Я также знаю, что mySql_ устарел, но для примера он работает нормально.
Редактирование 2: я знаю, что вы можете вставлять, но на данный момент это довольно неуместно, я думаю, что это проблема с использованием текстовой области вместо простого ввода.
Редактировать 3: Это просто опечатка (трахается ради). Был длинный день
$("#finishButton").click(function(e) { // store final value and execute script to insert into DB. On success, switch to success page
var commentsValid = $('#commentsDetailsForm').valid();
if (commentsValid) {
comments = document.getElementById('commentsInput').value;
e.preventDefault();
$.ajax({
type: "POST",
url: 'insert.php',
data: 'forenameInput=' + forename + '&surnameInput=' + surname + '&emailInput=' + email + '&telephoneInput=' + telephone + '&genderInput=' + gender + '&dobInput=' + dob + '&commentInput=' + comments,
success: function (data) {
if (data == "Error") {
$("#error").show();
$("#processing").hide();
} else {
window.location.href = "success.php";
}
}
});
} else {
}
});
Это предназначено для хранения всех деталей в базе данных. Однако, как бы то ни было, он сохраняет все детали в базе данных, кроме комментариев (конечная переменная). Могу ли я закончить утверждение данных неправильно, есть ли что-то еще принципиально неправильное?
PHP скрипт:
<?php
// Connection Details
$servername = "localhost";
$username = "root";
$password = "user10";
$dbname = "test";
// Create connection
$conn = mysql_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysql_connect_error());
}
// Select database
mysql_select_db($dbname,$conn);
// Store posted data in variables
$forename = $_POST['forenameInput'];
$surname = $_POST['surnameInput'];
$email= $_POST['emailInput'];
$telephone = $_POST['telephoneInput'];
$dob = $_POST['dobInput'];
$gender = $_POST['genderInput'];
$comments = $_POST['commentsInput'];
//Change date of birth so it's storable in mysql database
$dobAlt = date('Y-m-d',strtotime($dob));
// Insert form information into database
$sqlQuery = "INSERT INTO test (firstName, lastName, email, telephone, gender, dob, comments) VALUES ('$forename','$surname','$email','$telephone','$gender','$dobAlt', '$comments')";
// Check if query worked
if (mysql_query($sqlQuery, $conn)) {
} else {
echo "Error: " . $sql . "<br>" . mysql_error($conn);
}
// Close db
mysql_close();
?>
HTML:
<form id = "commentsDetailsForm" name = "commentsDetailsForm" method = "post">
<label for "commentsInput" id = "labels"> Comments </label>
<br>
<textarea id = "commentsInput" rows= "2" name = "commentsInput" class = "input-block-level"></textarea>
<br>
<div id = "registrationButtonWrapper">
<button id = "finishButton" class = "insertDetailsFinal" name = "finish"> finish > </button>
</div>
</form>
Вы также можете видеть, что это работает на http://chriswaszczuk.me/jobTest/ (вы должны заполнить форму, чтобы увидеть базу данных).
Наблюдали ли вы запрос AJAX, чтобы убедиться, что замечания направляются к сервер? –
Когда вы собираете свои данные для своего вызова Aax, вы используете 'commentInput', но вы ищете' $ _POST ['commentsInput'] '. Ваш код также широко открыт для атаки SQL-инъекций. –