大佬教程收集整理的这篇文章主要介绍了提交表单前传递数据进行ajax验证,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我在这里的第一个问题,因此对任何逻辑错误等表示歉意。我正在开发预算管理器 web 应用程序,允许用户保存他的收入和支出数据。这里特别是一个区域,供用户为这两者中的任何一个创建自定义类别。我试图在提交之前验证输入数据,使用 AJAX 和 php,但是该功能不起作用。我的目的是检查该类别是否已存在于数据库中。请在下面找到我的代码:
options.HTML
<div class="row gap-2 mt-3 mx-3" ID="addcategory">
<button class="btn btn-success" onclick="addcategoryHandler('income')"
ID="addIncomecategory">Add new category</button>
</div>
<form ID="editForm" action="JavaScript:addcategory()">
<label ID="cattegorynameLabel" for="categoryname">category name</label>
<input class="form-control inputBox errorcategory" type="text" ID="categoryname" name="categoryname" aria-label="Nazwa kategorii"
aria-describedby="cattegorynameLabel">
</form>
jquery valIDation:
$(document).ready(function() {
$('#editForm').valIDate({
rules: {
categoryname: {
required: true,minlength: 3,maxlength: 20,categoryRegex: true,remote: '/setTings/valIDate-category'
},},});
按下按钮后,代码将通过 JavaScript 处理,然后显示相应的模式:
function addcategoryHandler(newcategoryTypE) {
categoryType = newcategoryType;
//Set proper modal title
$('#editModalLabel').text(addcategorymodaltitlE);
//reset category name & limit input
$('#categoryname').val('');
$('#limit').val(parsefloat(0).toFixed(2));
$('#limitcheck').prop( "checked",false );
//Set proper button function
$('#editForm').attr('action',"JavaScript:addcategory()");
switchlimitForm();
$('#editModal').modal('show');
}
function addcategory() {
categoryname = $('#categoryname').val();
categorylimit = $('#limit').val();
categorylimitState = $('#limitcheck').is(':checked');
$.AJAX({
type: 'POST',url: '/setTings/addcategory',dataType: 'Json',data: {
postcategoryType: categoryType,postcategoryname: categoryname,postcategorylimitState: categorylimitState,postcategorylimit: categorylimit
},success: function(result) {
addcategoryRow(categoryname,result);
},error: function(xhr){
console.log(xhr);
}
});
}
public function valIDatecategoryAction()
{
$isEqual = ! $this->valIDateNewIncomecategory($_GET['categoryname'],$_GET['ignore_ID'] ?? null);
header('Content-Type: application/Json');
echo Json_encode($isEqual);
}
public function valIDateNewIncomecategoryAction($name,$ignore_ID = null)
{
$categorIEs = Finance::getUserIncomeCategorIEs();
$name = 'Inne';
if($categorIEs)
{
$isEqual = true;
foreach ($categorIEs as $category)
{
if (strtolower($categorY['name']) == strtolower($Name)) {
$isEqual = false;
}
}
return $isEqual;
}
}
正在模型中检查数据库,Finance.php:
public static function getUserIncomeCategorIEs()
{
$db = static::getDB();
$query = $db->prepare('SELECT ID,name FROM incomes_category_assigned_to_users WHERE user_iD = :user_iD');
$query->bindValue(':user_iD',$_SESSION['user_iD'],PDO::ParaM_int);
$query->execute();
return $query->fetchAll();
}
我现在最担心的是 categoryname 没有传递给控制器(因为表单还没有提交)。服务器端的验证过程很好,但我也想为客户端设置它。我正在考虑使用 cookies 传递数据,但是我不知道如何正确地做到这一点。另外,对于这么长的帖子,很抱歉,这里发生了很多事情,这一直困扰着我一段时间。我很感激任何帮助。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的提交表单前传递数据进行ajax验证全部内容,希望文章能够帮你解决提交表单前传递数据进行ajax验证所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。