IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

symfony et appel ajax via une route [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut symfony et appel ajax via une route
    Bonjour à tous,

    J'ai voulu réaliser un keyup ajax via une route url:{{path(...)}} pour alimenter un champs.

    Hors pour chaque keyup c'est route controller methode check lalala c'est lent.

    j'ai donc déclarer en url un fichier php avec un mysql_query je zap donc toute la troupe symfony et c'est réactif.

    Ce que je souhaiterait serait de pouvoir effectuer un appel ajax mais sans passer par une route.

    Est il possible et comment de pouvoir appeler une entité avec doctrine via un fichier ce trouvant dans le rep web par exemple

    web/fichier_ajax.php ?? pour utiliser doctrine et interroger mon entité

    J'ai essayé mon controller/controller mais dedans y a les appelles à $route pour les sécus

    mon keyup actuelle il lui faut 3 à 4 secondes pour traiter tous es caractère et c'est lourd.

    exemple: j'ai marseille dans mon élément si je fais ctrl+a & sup il efface et me réaffiche marseille alors que si j'attends 3s après avoir tout sélectionné il me met bien rien soi null
    toujours avec marseille si je supprime le tout d'un coup et que je tape pa pour paris.
    La il réaffiche marseille et me remplace par paris.

    Je dirais que le problème vient du faite que le temps de tout digérer de cette façon n'est pas bonne donc comment faire

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    oooh maaaaaaan rastafariiiiiiiiiiiiiiiiiiiiiiie


    attention, en DEV c'est normal que c'est lent. il y a tous les outils d'analyses Symfony qui tournent. faut tester en PROD

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    Bonjour,

    oui j'ai également testé en prod après un cache:clear --env=prod mais c'est identique.

    Dans la console je relève bien chaque keyup donc j'ai tout le traitement symfony vérification etc...

    est ce bien: 1) déclarer une route pour l'ajax 2) alimenter son élément dans la view 3) traiter les post dans mon controller.

    Ou dois je déclarer quelque chose dans mon formBuilder?

    ou serait il possible de désactiver un process non spécialement utile pour ce cas de figure je pense notamment à la sécurité puisque que je vérifie le tous à l'envoie.

  4. #4
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    doublon et déjà répondu :
    http://www.developpez.net/forums/d15...t-route-keyup/

    par toi en plus...

    regarde du coté des autocomplete et met toi en environnement de prod.
    Si c'est toujours trop lent, regarde ce qui prend du temps, en général, c'est les requetes SQL. Si c'est le cas, optimise les.
    Sinon, regarde ton code, tu fais peut etre des trucs complexe.
    Tu peux aussi mettre en place du cache de résultat pour accélérer encore la création de la page si tu interroge une liste stable(par exemple une liste de ville) Un cache de 1 heure te donnera de bon résultats.

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    Bonjour,

    Merci pour vos commentaires constructifs.

    j'ai résolu une partie car je déclarais mon block javascripts dans mon block body au lieu d'en dessous, ce qui me déclenchait double jquery.

    maintenant j'ai environ une seconde d'écart par contre:
    si j'ai une valeur et que je fais un ctrl+a & direct un sup il ré affiche la valeur supprimé alors que si je sélectionne le tout avec un click et sup pas de problème.

    je vous passe mon code car c'est mon premier ajax avec ce framework.

    route:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    personne_create:
        path:     /create
        defaults: { _controller: societeBundle:Default:create }
     
    personne_ajax:
        path:     /personne_ajax
        defaults: { _controller: societeBundle:Default:personne_ajax }
    controller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?php
     
    namespace societe\societeBundle\Controller;
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\httpFoundation\Request;
    use Symfony\Component\httpFoundation\Response;
     
    use societe\societeBundle\Entity\personne;
    use societe\societeBundle\Entity\adresse;
    use societe\societeBundle\Form\personneType;
    use societe\societeBundle\Form\adresseType;
     
    class DefaultController extends Controller
    {
        public function indexAction(request $request)
        {
            return $this->render('societeBundle:Default:index.html.twig');
        }
     
        public function createAction(request $request)
        {
            $em = $this->getDoctrine()->getManager();
        	$personne = new personne();
     
            $adr = $em->getRepository("societeBundle:adresse");
            $villes = $adr->findAll();
     
        	$form = $this->createForm(new personneType(), $personne);
        	$form->handleRequest($request);
        	if($form->isValid()){
                $ville = $form["adresse"]["ville"]->getData();
                if($ville){
                    $ville = $adr->findOneBy(array("ville" => $ville));
                    $personne->setAdresse($ville);
                }
        		$em->persist($personne);
        		$em->flush();
        	}
     
            return $this->render('societeBundle:Default:create.html.twig', array(
                                    "form" => $form->createView(), 
                                    "villes" => $villes)
            );
        }
        public function personne_ajaxAction(request $request)
        {
            $em = $this->getDoctrine()->getManager();
            $qb = $em->createQueryBuilder();
            $qb ->select('a')
                ->from('societeBundle:adresse', 'a')
                ->where("a.ville like '".$_POST['ville']."%'")
                ;
            if($ville= $qb->getQuery()->getOneOrNullResult())
                $valeur = $ville->getVille();
            else 
            $valeur =  null;
            return new response($valeur);
        }
    }
    entity personne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    <?php
     
    namespace societe\societeBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * personne
     *
     * @ORM\Table()
     * @ORM\Entity(repositoryClass="societe\societeBundle\Entity\personneRepository")
     */
    class personne
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @var string
         *
         * @ORM\Column(name="prenom", type="string", length=255)
         */
        private $prenom;
     
        /**
         * @var string
         *
         * @ORM\Column(name="nom", type="string", length=255)
         */
        private $nom;
     
        /**
         * @var string
         *
         * @ORM\Column(name="sexe", type="string", length=255)
         */
        private $sexe;
     
        /**
         *@ORM\manyToOne(targetEntity="societe\societeBundle\Entity\adresse",cascade={"persist"})
         */
        private $adresse;
     
     
        /**
         * Get id
         *
         * @return integer
         */
        public function getId()
        {
            return $this->id;
        }
     
        /**
         * Set prenom
         *
         * @param string $prenom
         *
         * @return personne
         */
        public function setPrenom($prenom)
        {
            $this->prenom = $prenom;
     
            return $this;
        }
     
        /**
         * Get prenom
         *
         * @return string
         */
        public function getPrenom()
        {
            return $this->prenom;
        }
     
        /**
         * Set nom
         *
         * @param string $nom
         *
         * @return personne
         */
        public function setNom($nom)
        {
            $this->nom = $nom;
     
            return $this;
        }
     
        /**
         * Get nom
         *
         * @return string
         */
        public function getNom()
        {
            return $this->nom;
        }
     
        /**
         * Set sexe
         *
         * @param string $sexe
         *
         * @return personne
         */
        public function setSexe($sexe)
        {
            $this->sexe = $sexe;
     
            return $this;
        }
     
        /**
         * Get sexe
         *
         * @return string
         */
        public function getSexe()
        {
            return $this->sexe;
        }
     
        /**
         * Set adresse
         *
         * @param \societe\societeBundle\Entity\adresse $adresse
         *
         * @return personne
         */
        public function setAdresse(\societe\societeBundle\Entity\adresse $adresse = null)
        {
            $this->adresse = $adresse;
     
            return $this;
        }
     
        /**
         * Get adresse
         *
         * @return \societe\societeBundle\Entity\adresse
         */
        public function getAdresse()
        {
            return $this->adresse;
        }
    }
    entity adresse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?php
     
    namespace societe\societeBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * adresse
     *
     * @ORM\Table()
     * @ORM\Entity(repositoryClass="societe\societeBundle\Entity\adresseRepository")
     */
    class adresse
    {
        /**
         * @var integer
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @var string
         *
         * @ORM\Column(name="ville", type="string", length=255)
         */
        private $ville;
     
     
        /**
         * Get id
         *
         * @return integer
         */
        public function getId()
        {
            return $this->id;
        }
     
        /**
         * Set ville
         *
         * @param string $ville
         *
         * @return adresse
         */
        public function setVille($ville)
        {
            $this->ville = $ville;
     
            return $this;
        }
     
        /**
         * Get ville
         *
         * @return string
         */
        public function getVille()
        {
            return $this->ville;
        }
    }
    formType personne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <?php
     
    namespace societe\societeBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
     
    class personneType extends AbstractType
    {
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('prenom')
                ->add('nom')
                ->add('sexe','choice',array("choices" => array("m" => "homme", "f" => "femme")))
                ->add('adresse', new adresseType(), array("required" => false))
                ->add('ville-query','text',array("required"=>false,"mapped"=>false))
                ->add('valider','submit')
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'societe\societeBundle\Entity\personne'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'personne';
        }
    }
    formType adresse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?php
     
    namespace societe\societeBundle\Form;
     
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolverInterface;
     
    class adresseType extends AbstractType
    {
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('ville')
            ;
        }
     
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'societe\societeBundle\Entity\adresse'
            ));
        }
     
        /**
         * @return string
         */
        public function getName()
        {
            return 'adresse';
        }
    }
    view:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    {% extends '::base.html.twig' %}
     
    {% block body %}
    <h3> créer nouvelle personne </h3>
    <h4>villes disponnibles</h4>
    {% for ville in villes %}
    	{{ville.ville}}<br>
    {% endfor %}<br>
     
    {{form_start(form)}}
     
    {{form_end(form)}}
     
    {% endblock %}
     
    {%  block javascripts %}
    	<script>
    		$(document).ready(function(){
    			$("#personne_adresse_ville").keyup(function(){
    				$.ajax({
    					type: 	"post",
    					url: 	"{{path('personne_ajax')}}",
    					data: "ville=" + $(this).val(), 
    					success: function(valeur){
    						// if(valeur)
    						$("#personne_adresse_ville").val(valeur);
    					},
    				});
    			});
     
    			$("#personne_ville-query").keyup(function(){
    				// alert("test");
    				$.ajax({
    					type: "post",
    					url: "http://127.0.0.1/symfony/web/php/ville_query_ajax.php",
    					data: "ville=" + $(this).val(), 
    					success: function(valeur){
    						$("#personne_ville-query").val(valeur);
    					}
     
    				});
    			});
     
    		});
    	</script>
    {% endblock %}

    ainsi que mon fichier php qui se trouve dans web\php\.... pour ma requête mysql_query
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("symfony");
     
    if(!empty($_POST["ville"])){
    	$query = mysql_query("select ville from adresse where ville like  '".$_POST["ville"]."%' ");
    	$result = mysql_fetch_array($query);
    	echo $result['ville'];
    }
    else
    	echo null;
    ?>
    voila de ma maigre expérience sur ce framework.

    Pourriez vous me dire ce que j'aurais mal fait ou mal optimiser car je ne sais pas vraiment malgré résultat si c'est bon ou pas ainsi.

    Bien à vous.

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    yoooooooooooooo maaaaaaaaaan

    bon, j'ai pas lu tous tes codes parceque je suis un gros fainéasse mais pour me rattraper je te copie colle ce que j'ai fais :
    ce code date de 3 ans, à mes débuts. il y a certains trucs à améliorer peut être.

    controller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
        // --------------------------------------------  AJAX - VILLE  ----------------------------------
        /**
         * @Route("/cp-ville-ajaxrq", name="cp_ville_ajaxrq")
         */
        public function ajaxCpVilleAction() {
            $request = $this->container->get('request');
            $user = $this->container->get('security.context')->getToken()->getUser();
            if (true === $this->get('security.context')->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
                if ($request->isXmlHttpRequest()) {
                    $cp_auto = $this->getDoctrine()
                        ->getRepository('JoXBundle:CpAutocomplete')
                        ->createQueryBuilder('c')
                        ->select('c.cp AS CodePostal, c.ville AS Ville, c.nomadmin2, c.latitude, c.longitude');
                    if ( $request->get("codePostal")!=null ) {
                        $cp_auto
                            ->where('c.cp LIKE :codePostal')
                            ->setParameter('codePostal', $request->get("codePostal").'%');
                    } else {
                        $cp_auto = $cp_auto
                            ->where('c.ville LIKE :ville')
                            ->setParameter('ville', $request->get("ville").'%');
                    }
                    $cp_auto = $cp_auto
                        ->andWhere('c.codepays=:pays')
                        ->setParameter('pays', $request->get("pays"))
                        ->setMaxResults($request->get("maxRows"))
                        ->getQuery();
     
                    $response = new Response(json_encode($cp_auto->getResult()));
                    $response->headers->set('Content-Type', 'application/json');
                    return $response;
                }
            }
            return $this->redirect( $this->generateUrl('page_index'));
        }



    le formTYpe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    class AccountType extends AbstractType {
     
        public function buildForm(FormBuilderInterface $builder, array $options) {
            $builder
            ->add('cp', 'text', array( 'attr'=>array( 'required' => 'required',), 'constraints' => array(
                new NotBlank(array('message'=>'Le Code Postal est obligatoire.')),
                new Length(array('min' => 5, 'minMessage'=>'Code postal : 5 chiffres minimum.')),
            )) )
            ->add('ville', 'text', array( 'attr'=>array('class'=>'input-medium', 'required' => 'required',), 'constraints' => array(
                new NotBlank(array('message'=>'La Ville est obligatoire.')),
                new Length(array('min' => 3, 'minMessage'=>'Ville : 3 caractères minimum.')),
            )) )
    ('target', 'hidden');                      
        }
     
        public function setDefaultOptions(OptionsResolverInterface $resolver) {
            $resolver->setDefaults(array(
            'data_class' => 'Jo\XBundle\Entity\Account'
            ));
        }
     
        public function getName() {
            return 'a_q_at';
        }
     
    }






    la vue twig
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
                            <div class="input-group">
                                <span class="input-group-addon" id="basic-addon1">Code Postal</span>
                                {{ form_widget(form.cp, { 'attr': {'class': 'form-control', 'placeholder' : "obligatoire", 'size' : '6'} }) }}
                            </div>
     
                            <div class="clear" style="height: 8px;"></div>
                            <div class="input-group">
                                <span class="input-group-addon" id="basic-addon1">Ville</span>
                                {{ form_widget(form.ville, { 'attr': {'class': 'form-control', 'placeholder' : "obligatoire"} }) }}
                            </div>
     
     
     
            // recherche par ville
            $("#a_q_at_ville").autocomplete({
                source: function (request, response) {
                    var objData = {};
                    objData = { ville: $.trim(request.term), pays: 'FR', maxRows: 25 };
     
                    $.ajax({
                        url: "{{ url('cp_ville_ajaxrq') }}",
                        dataType: "json",
                        data: objData,
                        type: 'POST',
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    label: item.CodePostal + ", " + item.Ville,
                                    value: function () {
                                        $('#a_q_at__cp').val(item.CodePostal);
                                        $('#a_q_at_e_region').val(item.nomadmin2);
                                        $('#a_q_at_pays').val("France");
                                        return item.Ville;
                                    }
                                }
                            }));
                        }
                    });
                },
                minLength: 2,
                delay: 50
            });
            // recherche par cp
            $("#a_q_at_cp").autocomplete({
                source: function (request, response) {
     
                    var objData = {};
                    objData = { codePostal: $.trim(request.term), pays: 'FR', maxRows: 25 };
     
                    $.ajax({
                        url: "{{ url('cp_ville_ajaxrq') }}",
                        dataType: "json",
                        data: objData,
                        type: 'POST',
                        success: function (data) {
                            response($.map(data, function (item) {
                                return {
                                    label: item.CodePostal + ", " + item.Ville,
                                    value: function () {
                                        $('#a_q_at_ville').val(item.Ville);
                                        $('#a_q_at_region').val(item.nomadmin2);
                                        $('#a_q_at_pays').val("France");
                                        return item.CodePostal;
                                    }
                                }
                            }));
                        }
                    });
                },
                minLength: 3,
                delay: 50
            });

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    Merci beaucoup pour ce taf et ton aide précieuse Dukoid.

    Bien évidemment, je ne compte pas utiliser du mysql, je préfère via symfony, mais cela m'explique pas pourquoi une requête en mysql est plus réactif même en prod.

    Dans mon code je ne surcharge rien même pas de vérification sur qui est connecté donc?

    De plus, j'ai remarqué que mon ajax mysql donc via mon php à part cela ne fonctionne pas en ligne mais juste en local.

  8. #8
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2014
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 124
    Par défaut
    Après avoir parcouru mainte avis à propos de symfony mal compatible avec xp ou autre plus réactif avec unix.

    J'ai migré mon projet sur un autre pc en seven et la la claque c'est all is done.

    J'ai 3 portables et j'ai pris le plus pourris mais celui qu'a l'écran le plus grand.

    logique qu'avec symfony plus gourmand puisqu'il réalise plein de choses pour nous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Route symfony dans le paramètre url d'un appel ajax
    Par abc.xyz dans le forum Symfony
    Réponses: 8
    Dernier message: 03/08/2014, 08h17
  2. [AJAX] Appel Ajax dans une boucle Php
    Par mycha25 dans le forum AJAX
    Réponses: 1
    Dernier message: 30/03/2012, 12h33
  3. appel ajax d'une appli sur une autre d'un service WCF
    Par bibouilles dans le forum ASP.NET Ajax
    Réponses: 0
    Dernier message: 16/03/2012, 11h14
  4. [2.x] Intégrer une url générée via une route dans du javascript
    Par kalash_jako dans le forum Symfony
    Réponses: 1
    Dernier message: 30/07/2011, 07h57
  5. [1.x] emailing à route via une tache symfony
    Par lepopol dans le forum Symfony
    Réponses: 7
    Dernier message: 10/01/2011, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo