程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了提交表单前传递数据进行ajax验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决提交表单前传递数据进行ajax验证?

开发过程中遇到提交表单前传递数据进行ajax验证的问题如何解决?下面主要结合日常开发的经验,给出你关于提交表单前传递数据进行ajax验证的解决方法建议,希望对你解决提交表单前传递数据进行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 处理,然后显示相应的模式:

setTings.Js

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);
        }
    });
}

数据稍后传递给控制器​​,SetTings.php

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,请注明来意。