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

AJAX Discussion :

Envoyer la valeur d'un select comme paramètre en ajax


Sujet :

AJAX

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 67
    Points : 64
    Points
    64
    Par défaut Envoyer la valeur d'un select comme paramètre en ajax
    Bonjour !

    Alors tout d'abord, il faut savoir que je n'y connais pas grand chose en ajax, et que je suis trèèèèès débutante en jquery...
    Je développe mon site avec CakePHP 3.

    Donc voilà ce que je voudrais faire:
    J'ai une page avec une liste déroulante d'années, et un tableau. Le tableau se remplit en fonction de l'année choisie dans la liste déroulante.
    Donc en gros, je voudrais récupérer l'année de la liste déroulante, et l'envoyer à ma fonction en paramètre.

    Voici ce que j'ai fais pour l'instant :

    Ma vue (mon select):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $this->Form->year('year', ['minYear' => 2000, 'maxYear' => date('Y'), 'class' => 'year', 'default' => 'maxYear', 'id' => 'year']); ?>
    Ma fonction dans mon contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function archive($year = null)
    {
        debug($year);
        $operations = $this->Operations->find('all')->contain(['Environnements', 'Sites'])->where(['year' => $year])->order(['name ASC']);
     
        $this->set('operations', $operations);
    }
    Ma fonction javascript:

    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
    $(document).ready(function($) 
    { 
        $('#year').change(function(e){
            var select = $('#year').val();
            console.log(select);
     
            $.ajax({
                url: '/Intranet/centralisation_url/pages/archive',
                type: 'get',
                data: {year: select},
                /*success: function(data){
                    
                }*/
        });
        });
    });

    Donc j'arrive à récupérer l'année quand je modifie mon select. Bien qu'il faudrait qu'il récupère l'année à la première lecture aussi...

    Bref, comment envoyer la valeur du select à mon contrôleur pour que ma fonction la prenne en paramètre ?


    Merci par avance pour votre aide


    Ju'

  2. #2
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 67
    Points : 64
    Points
    64
    Par défaut
    J'ai modifié un peu mon script :

    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
    $('#year').change(function(e){
            var select = $('#year').val();
            console.log(select);
     
            $.ajax({
                url: '/Intranet/centralisation_url/pages/archive/' + select,
                type: 'get',
                success: function(data, statut){
                    console.log('succès ' + select);
                },
                error: function(resultat, statut, erreur){
                    console.log('erreur ' + select);
                }
            });
        });
    De cette façon, je peux voir dans la console de Chrome, que l'adresse générée est la bonne : http://localhost/Intranet/centralisa...s/archive/2012
    Mais comment faire pour que mon url se change dans le navigateur ?

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 754
    Points : 376
    Points
    376
    Par défaut
    Je ne sais pas si c'est ce que tu cherches à faire, mais pour charger une page en js tu peux agir sur l'attribut location directement en js sans faire de requête ajax.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.location.href="lien de ta page a charger"
    Si tu fais l'appel en ajax, tu dois voir la page s'appeler dans la console normalement, mais rien ne vas s'afficher. la page va simplement s'exécuter et tu ne verras rien s'afficher. Après libre à toi de récupérer des informations de retour sur la requete ajax pour agir sur ta page courante avec js.

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

Discussions similaires

  1. [Framework] Passage d'une valeur d'un Select en paramètre
    Par crixcrox dans le forum Spring
    Réponses: 1
    Dernier message: 05/06/2014, 12h36
  2. récupérer valeur liste de choix comme paramêtre dans un requete
    Par ecoutertudevra dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 03/03/2012, 10h09
  3. Utiliser la valeur d'une liste comme paramètre
    Par eudeline91 dans le forum IHM
    Réponses: 0
    Dernier message: 10/06/2008, 11h03
  4. Réponses: 3
    Dernier message: 09/06/2008, 09h17
  5. Réponses: 5
    Dernier message: 05/10/2006, 10h18

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