【发布时间】:2018-01-31 04:01:47
【问题描述】:
我进行了研究,但最终还是坚持使用我的 PHP AJAX 表单。我的表单已经可以使用,但我想添加一些用户体验,例如当 HTML 输入标记为空或条件不匹配时将边框更改为红色。
这是我的 PHP,AJAX 表单的作品。我通过 PHP 验证了用户在服务器端的输入,而不是客户端,然后将 JSON 格式的错误返回给我的 jQuery/Javascript 代码。我想知道哪些 HTML 输入标签为空或失败,以便添加这些输入标签的类。
这是我从 PHP 返回的 JSON,我转换为 JSON.parse n jQuery/Javascript 代码。
{
"errors": [{
"firstname": "Missing First name"
}, {
"lastname": "Missing Last name"
}]
}
如果我的 JS 代码有错误,我检查了响应
var json = JSON.parse(response);
if (json.hasOwnProperty('errors') && json.errors.length > 0) {
// I want to call a function here that detect which input tags are empty then add a class.
}else {
//execute other function
}
PHP 代码
<?php
$firstname = isset($_POST['firstname']) ? $_POST['firstname'] : null;
$lastname = isset($_POST['lastname']) ? $_POST['lastname'] : null;
$errors = []; //array for errors
$noError = "No error found";
if(empty($_POST['firstname'])){
$errors[]['firstname'] = 'Missing First name';
}else{
$firstname = sanitizedData($_POST['firstname']);
}
if (empty($_POST['lastname'])) {
$errors[]['lastname'] = 'Missing Last name';
}else{
$lastname = sanitizedData($_POST['lastname']);
}
if(!empty($errors)){
$result_array = array('errors' => $errors);
echo json_encode($result_array);
exit();
}else{
echo json_encode($noError);
}
//sanitized data from user inputs
function sanitizedData($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
【问题讨论】:
-
代码有什么问题?
-
嗨@Eddie,我的代码没有问题,相反我需要一些帮助来检测输入标签是否为空或验证失败。
标签: javascript php jquery ajax