php – Symfony2 ajax表单验证在树枝中渲染错误

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Symfony2 ajax表单验证在树枝中渲染错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Symfony2中有一个表单,我用ajax验证.这一切都正常,我在ajax调用的成功声明中找回了带有“global”(全局错误)和“fields”(这里的每个字段的错误)的json:

{"global":[],"fields":{"fos_user_registration_form_username":"Please enter a 
username","fos_user_registration_form_email":"Please enter an 
email","fos_user_registration_form_plainPassword_First":"Please enter a password"}}

我的问题是:在每个字段的视图中从“字段”中显示这些错误的最佳方法是什么?当我验证没有ajax的表单时,我将视图元素渲染为:

<div class="form-group">
   {{ form_label(form.xyz) }}
   {{ form_widget(form.xyz) }}
   {{ form_errors(form.xyz) }}
 </div>

怎样才能将我的json对象的“field”列表中的错误注入到相应的中

{{ form_errors(form.xyz) }}

我很想听听你的想法和最佳实践.

问候.

解决方法

你通过Javascript / jquery添加它们.

我有类似的情况,这是我的代码

发布表单数据并在出现错误显示错误消息的Js代码.

$.ajax({

    url : $(this).attr('action') + ".json",method : 'POST',data : $(this).serialize(),}).done(function(data) {

        // Code in case of success

}).fail(function(jqXhr) {

   $.each(jqXHR.responseJSON.errors.children,function(k,v) {

       errorsText = "";

       if ((v.errors) @R_304_315@ (v.errors.length > 0)) {
           $.each(v.errors,function(n,errorText) {
               errorsText += errorText;
           });
           $('#form_'+k).tooltip('destroy');
           $('#form_'+k).tooltip({'tITle': errorsText});    
           $('#form_'+k).closest('div[class="form-group"]').addClass('has-error');
        } else {
           $('#form_'+k).closest('div[class="form-group has-error"]').removeClass('has-error');
           $('#form_'+k).tooltip('destroy');
      }

   });
}

如果出现错误,这是我的Json.如果您使用FOSRestBundle,则是标准配置

{
   "code":400,"message":"Validation Failed","errors":{
      "children":{
         "name":{
            "errors":[
               "This value should not be blank."
            ]
         }
         "email":{
            "errors":[
               "This value should not be blank."
            ]
         }
         "PRivacy":{
            "errors":[
               "This value should not be blank."
            ]
         }
      }
   }
}

我的表单的HTML

<form id="sfForm" action="/landingbuilder/landing/test_template" method="POST">

    <div class="form-group">
        <label class="control-label required" for="form_name">Name</label>
        <input tyPE="text" id="form_name" name="form[name]" required="required" class="form-control" />
    </div>

    [..]

</form>

如果您需要更多细节,请询问

脚本宝典总结

以上是脚本宝典为你收集整理的php – Symfony2 ajax表单验证在树枝中渲染错误全部内容,希望文章能够帮你解决php – Symfony2 ajax表单验证在树枝中渲染错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。