Bonjour,
Je souhaite utiliser FosJsRoutingBundle avec mon projet Symfony 5 , je suivi la documentation ;

je l'installe avec :
composer require friendsofsymfony/jsrouting-bundle

J'ai inclus mes 2 scripts javascript dans la page de mise en page principale pour charger la configuration et les routes:
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>

je veux implementer maintenant une fonction de vérification avec json

ceci ma fonction :

  public function phoneverif(Request $request , $extension){
    if ($request->isXmlHttpRequest()) {
        $em = $this->getDoctrine()->getManager();
        $phone = $em->getRepository(Phones::class)->findOneByExtension($extension);
        if ($phone) {
            $existe = 1;
        } else {
            $existe = 0;
        }
        $response = new JsonResponse();
        return $response->setData(array('existe' => $existe));
    } else {
        throw new \Exception('Erreur');
    }  

   }

ceci mon code twig :


 {% extends 'superadmin.html.twig'%}

 {% block body %} 

        <div class="container-fluid">

          <!-- Page Heading -->
          <h1 class="h3 mb-4 text-gray-800">Nouveau téléphone</h1>

        </div>

        <div class="col-md-12">
                {% for flashMessage in app.session.flashbag.get('notice') %}
                    <div class="alert alert-success alert-dismissable">
                        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
                        <h4><i class="icon fa fa-check"></i>{{ flashMessage }}</h4>
                    </div>
                {% endfor %}  

                 <!-- general form elements -->
                <div>
                    <!-- form start -->
                    {{ form_start(form)}}
                    <div>
                         <div class="row">
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>{{ form_label(form.userGroup) }}</label>
                                        {{ form_widget(form.userGroup) }}
                                        <span class="text-danger">{{ form_errors(form.userGroup) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.protocol) }}</label>
                                        {{ form_widget(form.protocol) }}
                                        <span class="text-danger">{{ form_errors(form.protocol) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.extension) }}</label>
                                        {{ form_widget(form.extension) }}
                                        <span class="text-danger">{{ form_errors(form.extension) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.dialplanNumber) }}</label>
                                        {{ form_widget(form.dialplanNumber) }}
                                        <span class="text-danger">{{ form_errors(form.dialplanNumber) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.voicemailId) }}</label>
                                        {{ form_widget(form.voicemailId) }}
                                        <span class="text-danger">{{ form_errors(form.voicemailId) }}</span>
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="form-group">
                                        <label>{{ form_label(form.login) }}</label>
                                        {{ form_widget(form.login) }}
                                        <span class="text-danger">{{ form_errors(form.login) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.pass) }}</label>
                                        {{ form_widget(form.pass) }}
                                        <span class="text-danger">{{ form_errors(form.pass) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.confSecret) }}</label>
                                        {{ form_widget(form.confSecret) }}
                                        <span class="text-danger">{{ form_errors(form.confSecret) }}</span>
                                    </div>
                                    <div class="form-group">
                                        <label>{{ form_label(form.serverIp) }}</label>
                                        {{ form_widget(form.serverIp) }}
                                        <span class="text-danger">{{ form_errors(form.serverIp) }}</span>
                                    </div>
                                </div>
                            </div>
                        </div>

                    <div>
                        <button class="btn btn-primary"onClick="phoneverif();">Ajouter</button>

                        <a class="btn btn-warning" href="{{ path('Les_telephones') }}">Retour</a>
                    </div>
                    {{ form_end(form)}}
    </div><!-- /.box -->
            </div>
        </div>
{% endblock %}                    

{% block javascripts %}

<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
<script type="text/javascript">
var $extension = $('#xarix_xarixbundle_phones_extension'); 
var $dialplanNumber = $('#xarix_xarixbundle_phones_dialplanNumber'); 
var $login = $('#xarix_xarixbundle_phones_login'); 
var $pass = $('#xarix_xarixbundle_phones_pass'); 

                                function phoneverif() {
                                    if ($("#xarix_xarixbundle_phones_extension").val() == '') {
                                        alert('Vous devez saisir une extension');
                                    } else {
                                        if ($("#xarix_xarixbundle_phones_dialplanNumber").val() == '') {
                                            alert('Vous devez saisir le dialplan du téléphone');
                                        } else {
                                            if ($("#xarix_xarixbundle_phones_login").val() == '') {
                                                alert('Vous devez saisir le login du téléphone');
                                            } else {
                                                if ($("#xarix_xarixbundle_phones_pass").val() == '') {
                                                    alert('Vous devez saisir le mot de passe du téléphone');
                                                } else {
                                                    $.ajax({
                                                        type: 'get',
                                                        url: Routing.generate('phone_verif', {extension: $("#xarix_xarixbundle_phones_extension").val()}),
                                                        success: function (data) {
                                                            if (data.existe == 1) {
                                                                alert('Téléphone non valide');
                                                            } else {
                                                                $("form").submit();
                                                            }
                                                        }
                                                    });
                                                }
                                            }
                                        }
                                    }
                                }
    </script>

{% endblock %}

mais la fonction verif ne marche pas lorsque je remplis mon formulaire !

peut etre j'oublie qqs choses

merci

Entourez votre code pour bien le mettre en forme

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

Aucune réponse