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

Zend Framework PHP Discussion :

Ajax ne fonctionne pas sur controlleur différent


Sujet :

Zend Framework PHP

  1. #1
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut Ajax ne fonctionne pas sur controlleur différent
    Bonjour, je développe un projet utilisant Zend Framework et de l'Ajax.

    J'ai dans ma page un menu avec des liens qui mènent à différentes pages où quand je clique dessus, je fais appel à cette 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
    17
    18
    19
    20
     
    function displayPage(nomPage)
    {
    	$.ajax(
    	{
    	       url: nomPage,
    	       type: 'GET',
    	       context: document.corps,
    	       data: 
    	       {
    		   "format" : "html"
    	       },
    	       error: errorAjax,
    	       dataType: "html",
    	       success: function(data)
    		{
    		      document.getElementById('corps').innerHTML = data;
    		}
    	});
    }
    nomPage vaut 'index/nomAction'.

    Seulement, quand je clique sur mon menu lorsque je suis dans un contrôleur différent de l'index, ca ne me charge rien alors que pourtant, j'ai bien précisé dans tout mes contrôleurs, que les vues pouvait recevoir de l'ajax et j'y ai également créé des fichiers .ajax.phtml pour chaque action.

    Voilà un exemple d'action init() dans un de mes contrôleurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // AjaxContext
    $this->ajaxContext = $this->_helper->getHelper('AjaxContext');
     
    $this->ajaxContext->addActionContext('index', 'html')
                                ->addActionContext('contact', array('html', 'json'))
                                ->initContext();
     
    if($this->_request->isXmlHttpRequest())
    {
        $this->_helper->layout->disableLayout();
    }
    Qu'est-ce qu'il manque pour que ça fonctionne?

    J'ai pensé à directement mettre le chemin absolu de mon action dans ma fonction Ajax mais ça fait moyen.. :/
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  2. #2
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Tu utilise baseUrl?

  3. #3
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Je ne peux pas parce que sinon, j'obtiens cette erreur avec firebugt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    invalid regular expression flag c
    displayPage(/index/cv)
    Voici un des liens de mon menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onclick="displayPage(<?php echo $this->baseUrl('index/index'); ?>)">Accueil</a>
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  4. #4
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    C est $this->baseUrl().'/index/index'

  5. #5
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Ca ne fonctionne toujours pas, j'ai toujours la même erreur soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    invalid regular expression flag r
    http://static.ak.fbcdn.net/rsrc.php/v1/yo/r/n8HMk6QKzko.js
    Line 5
    displayPageAdmin(/nomRepertoire/nomProjet/index/index)
    Et voici mon code:
    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
     
    function displayPage(nomPage)
    {
    	alert(nomPage);
    	$.ajax(
    	{
    	       url: nomPage,
    	       type: "GET",
    	       context: document.ajax,
    	       data: {
    				"format" : "html"
    				},
    	       error: errorAjax,
    		   dataType: "html",
    		   success: function(data)
    		   {
    		      	document.getElementById('ajax').innerHTML = data;
    		   }
    	});
    }
     
    <a onclick="displayPage(<?php echo $this->baseUrl().'/index/index'; ?>)">Accueil</a>
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

  6. #6
    Membre éprouvé
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Points : 1 297
    Points
    1 297
    Par défaut
    Tu es sur que ca vient de code? Car l url avec le static dedans ca correspond a quoi?

  7. #7
    Rédacteur

    Homme Profil pro
    Technical Lead Salesforce
    Inscrit en
    Février 2009
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Points : 1 667
    Points
    1 667
    Par défaut
    Quand je clique sur "invalid regular expression flag r", ca m'emmène vers le code généré et ça me sélectionne la première ligne.

    En revanche, l'url static correspond à une page facebook comme je créé une application facebook.
    - Mes articles
    - Consultant technique Salesforce
    - Salesforce Certified Administrator
    - Salesforce Certified Platform App Builder
    - Salesforce Certified Developper I
    - Salesforce Certified Sales Cloud
    - Salesforce Certified Service Cloud

Discussions similaires

  1. [AJAX] Ajax ne fonctionne pas sur Wordpress
    Par kurosaki91 dans le forum jQuery
    Réponses: 4
    Dernier message: 08/10/2014, 10h52
  2. Réponses: 3
    Dernier message: 09/07/2014, 14h57
  3. Réponses: 0
    Dernier message: 13/09/2013, 18h05
  4. Réponses: 0
    Dernier message: 04/05/2012, 14h32
  5. [AJAX] Script ajax ne fonctionne pas sur IE :( !
    Par Funattitude dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/08/2006, 18h02

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