Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-12-2016 17:35:47

willheisen
Nouveau membre
Date d'inscription: 08-11-2016
Messages: 8

URL invalide avec Ajax

Bonjour à tous,

Version de Zend: 2.2.7

Je suis actuellement en train de faire un formulaire avec deux Select.
Le premier est rempli avec les éléments d'une table SPECIALITE et le second serait rempli selon la valeur choisie dans le premier select.
Pour cela, je tente d'utiliser Ajax.
Je récupère bien (via firebug) l'index de la valeur choisie dans le premier select mais le script "getPromotions.php" n'est pas trouvé. J'ai mis ce script dans le même dossier où se trouve les pages .phtml.

Le javascript dans le fichier search.phtml:

Code:

<!-- Script pour alimenter le menu déroulant "#select_promo" selon le choix du premier select (#select_spe) -->
 <script type="text/javascript">

    $(document).ready(function () {
    var promo = $('#select_promo');

    $("#select_spe").change(function () {

        var id_specialite = $(this).val();

        $.ajax({
            url: "emargement/getPromotions.php",
            data: 'id_specialite='+ id_specialite,
            dataType: 'json', // on veut un retour JSON
            async: false,
            success: function(json) {
                console.log('OK');
                $.each(json, function(index, value) { // pour chaque noeud JSON
                    // on ajoute l option dans la liste
                    //$("#select_promo").append('<option value="'+ index +'">'+ value +'</option>');
                    promo.append('<option value="'+ 3 +'">'+ A +'</option>');
                    console.log(index, value);
                });
            },
            error: function (json) {
                alert("Erreur");
            }
        });
    });
});

</script>

La route pour les .phtml est localhost/emargement


Le module.config.php:

Code:

<?php

return array(
   'controllers' => array(
       'invokables' => array(
           'Emargement\Controller\Creneau' => 'Emargement\Controller\CreneauController',
           'Emargement\Controller\Emargement' => 'Emargement\Controller\EmargementController',
           ),
       ),

   'router' => array(
       'routes' => array(
           'creneau' => array(
               'type'    => 'Segment',
               'options' => array(
                   'route'    => '/creneau[/:action][/:id_creneau]',
                   'constraints' => array(
                       'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                       'id_creneau'     => '[0-9]+',
                       ),
                   'defaults' => array(
                       'controller' => 'Emargement\Controller\Creneau',
                       'action'     => 'index',
                       ),
                   ),
               ),
           'emargement' => array(
               'type'    => 'segment',
               'options' => array(
                   'route'    => '/emargement[/:action][/:id]',
                   'constraints' => array(
                       'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                       'id'     => '[0-9]*',
                       ),
                   'defaults' => array(
                       'controller' => 'Emargement\Controller\Emargement',
                       'action'     => 'search',
                       ),
                   ),
               ),
           ),
       ),
   'view_manager' => array(
       'template_path_stack' => array(
           'creneau' => __DIR__ . '/../view/',
           'emargement' => __DIR__ . '/../view/',
           ),
       'strategies' => array(
        'ViewJsonStrategy',
        ),
       ),

   );

Ma question est: où placer mon script getPromotions.php pour qu'il soit accessible par Ajax?

En vous remerciant.

Hors ligne

 

#2 07-12-2016 17:49:49

willheisen
Nouveau membre
Date d'inscription: 08-11-2016
Messages: 8

Re: URL invalide avec Ajax

L'organisation du module Emargement (SEUL LA SOUS PARTIE EMARGEMENT M'INTERESSE ICI):

├── autoload_classmap.php
├── config
│   └── module.config.php
├── Module.php
├── src
│   └── Emargement
│       ├── Controller
│       │   ├── CreneauController.php
│       │   └── EmargementController.php
│       ├── Form
│       │   ├── CreneauForm.php
│       │   ├── EmargementForm.php
│       │   └── SearchForm.php
│       └── Model
│           ├── Creneau.php
│           ├── CreneauTable.php
│           ├── Emargement.php
│           ├── EmargementTable.php
│           ├── Promotion.php
│           └── PromotionTable.php
└── view
    └── emargement
        ├── creneau
        │   ├── add.phtml
        │   ├── delete.phtml
        │   ├── edit.phtml
        │   └── index.phtml
        └── emargement
            ├── add.phtml
            ├── delete.phtml
            ├── edit.phtml
            ├── getPromotions.php
            ├── index.phtml
            └── search.phtml

Hors ligne

 

#3 07-12-2016 22:46:00

tdutrion
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 614
Site web

Re: URL invalide avec Ajax

Bonjour !

Il te faudrait un peu plus de connaissances en ZF, je t'invite à lire le quick start pour comprendre de quoi il s'agit...

Si tu veux qu'un fichier php pur soit accessible, tu dois le mettre dans le dossier public (ici public/emargement/getPromotions.php). Ça veut dire que ton fichier ne bénéficie pas du tout de Zend Framework. Si tu regardes dans public/index.php ou public/.htaccess selon ton setup, tu verras que si le fichier existe on le sert, sinon on utilise Zend Application (MVC) et donc on engage un routing et dispatch vers un controlleur.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages