Я пытаюсь разработать скрипт для проверки формы, которая будет содержать текстовые входы, выбор, флажки и текстовые поля. Я начал с создания простой формы с одним полем, скриптом jQuery для передачи данных в файл php и php-файл, который берет входы, выполняет проверку и возвращает идентификаторы ввода и сообщение об ошибке.Проверка формы PHP с помощью jQuery Ajax
Это то, что у меня есть до сих пор, и я пытаюсь проверить, передается ли мой вход в файл PHP, повторяя значение.
ФОРМА
<form id="myForm">
<input type="text" name="fname" id="fname">
<input type="submit" name="submit" id="submit" value="Submit Form">
</form>
<div id="response"></div>
.JS
$(document).ready(function(){
$('#submit').click(function(){
var formInputs = new Array();
formInputs .push($("#myForm").serialize());
$.ajax({
url: 'booking2.php',
type: 'POST',
data: {
'inputs': formInputs,
},
success: function(data){
if(data.success){
}else{
var list = "<center><div><p><></i> Errors </p>";
$.each(data.errors, function(){
list += " <div>"+ this.msg + "</div>";
});
list += "</div></center>"
$('#response').html(list).fadeIn();
}
});
return false;
});
});
PHP
<?php
$data = array(
'success' => false,
'errors' => array()
);
if (isset($_POST['inputs'])) {
$inputs = $_POST['inputs'];
foreach ($inputs as $input) {
$id = $input['id'];
$value = $input['value'];
switch($id) {
case "fname":
if (strlen($value) < 6){$msg = "Your " . str_replace("-", " ", ucfirst($id)) . " must be at least 6 characters in length";}else{$msg = "";}
break;
}
if (!empty($msg)) {
$data['errors'][] = array(
'msg' => $msg,
'field' => $id
);
}
}
}
if (empty($data['errors'])) {
$data['success'] = true;
}
} else {
$data['errors'][] = "Data missing";
}
header("Content-Type: application/json; charset=UTF-8");
echo json_encode((object)$data);
?>
Кто-нибудь знает, почему я не могу видеть значение, которое было выложено?
Я думаю, что это должно было быть '$ _POST [ 'имя_файла'] '.. У вас есть один дополнительный' n' в 'fname' .. Это опечатка ?? –
По умолчанию действие кнопки 'submit' представляет собой отправку формы обычным способом. Вам нужно предотвратить действие отправки формы с помощью 'event.preventDefault();' – Rayon
@GuruprasadRao Ahh да, это была опечатка в моем коде. Я удалил лишний «n», но форма все еще не публикуется. – John