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 :

[AJAX] Internal Server Error


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut [AJAX] Internal Server Error
    Bonjour,

    lorsque je clique sur une de mes images, je fais appel à une fonction en javascript qui utilise de l'Ajax mais j'ai une erreur
    Internal Server Error
    , je penche donc pour une erreur du serveur mais ce que je ne comprends pas, c'est que ça fonctionnait très bien ce matin et tout à l'heure quand je réessaie, ca ne veut plus et je ne comprends pas pourquoi, je précise que j'utilise Zend Framework.

    Voilà mon controlleur avec l'action adéquate:
    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
     
    public function init()
    {
    // AjaxContext
    $ajaxContext = $this->_helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('index', 'html')
                       ->addActionContext('voir-projet', 'html')
                        ->initContext();
    }
     
    public function voirProjetAction()
        {
        	// si requete Ajax
        	if ($this->_request->isXmlHttpRequest())
            {
                // Si c'est une requete Ajax, on desactive le layout
                 $this->_helper->layout->disableLayout();
                 $idProjet = $this->_getParam("idProjet", 0);
     
                 $projet = new Projet();
                 $projetRow = $projet->find($idProjet)->current();
     
                 if(!$projetRow)
                 {
                 	$this->view->projet = false;
                 }else
                 {
                 	$technologie = new Technologie();
                 	$technologies = $technologie->getTechnologiesByIdProjet($idProjet);
     
                 	$this->view->projet = $projetRow;
                 	$this->view->technologies = $technologies;
                 	$this->view->nbrTechnologies = count($technologies);
                 }
            }
        }
    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
    17
    18
    19
    20
    21
    22
     
    function afficherProjet(idProjet)
    {
    	$.ajax(
    	{
    		   url: "index/voir-projet",
    	       type: 'GET',
    	       context: document.corps,
    	       data: 
    	       {
    				"format" : "html",
    				"idProjet" : idProjet
    	       },
    	       error: errorAjax,
    		   dataType: "html",
    		   success: function(data)
    		   {
     
    				document.getElementById('corps').innerHTML = data;
    		   }
    	});
    }
    Et ma vue:
    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
     
    <table class="tableauProjets">
     
    <?php
    $i = 0; 
    foreach ($this->projets as $unProjet)
    {
            if($i == 0)
            {?>
    		<tr>
    			<td class="ligneTableauProjets">
     
    					<a href="#" onClick="afficherProjet('<?php echo $unProjet->id; ?>')" ><img src=<?php echo $this->baseUrl() . '/public/images/portfolio/' . $unProjet->photo; ?> class="imagesPortfolio" /></a>
    						</td>
    	<?php $i++;
            }else 
            {?>
    		<td class="ligneTableauProjets">
     
    				<a href='#' onclick="afficherProjet('<?php echo $unProjet->id; ?>')" ><img src=<?php echo $this->baseUrl() . '/public/images/portfolio/' . $unProjet->photo; ?> class="imagesPortfolio" /></a>
    					</td>
    		</tr>
    		<?php $i = 0;
            }
    }
    ?>
    </table>
    Ce que j'ai remarqué, c'est que quand je ne renvois pas de valeur 'idProjet', j'obtiens bien l'erreur comme quoi je n'ai pas de projet mais lorsque je transmets la bonne valeur, ca me met l'erreur interne du serveur et quand je vérifie celle-ci, j'envoie bien la bonne valeur qui existe bien dans la BDD.

    Si je fais un alert() dans ma fonction javascript, il s'exécute bien lorsque je clique sur une image.

    Merci d'avance de votre aide
    - 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
    Rédacteur

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

    Informations professionnelles :
    Activité : Technical Lead Salesforce

    Informations forums :
    Inscription : Février 2009
    Messages : 563
    Par défaut
    J'ai trouvé d'où venait mon problème, dans la méthode getTechnologiesByIdProjet($idProjet), je vérifie si le paramètre de ma fonction est bien un entier avec la fonction is_integer(), c'est là d'où venait mon erreur et si j'enlève ma vérification, je n'ai plus l'erreur Ajax et tout se passe bien mais je ne comprends pas pourquoi vu que si ça fonctionne sans, c'est que j'envoie bien un entier (1, 2, 3, ..) mais quand je véirife, ca ne me dit pas la même chose apparemment, comment ça se fait?

    Voilà comment était ma méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(is_int($idProjet))
    {
    		*** je fais mon traitement ***
    }else 
    {
    	throw new Exception;
    }
    1 n'est pas un entier?

    Ah bah non, c'est un numéric, faut que je révise mes types moi..
    - 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

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

Discussions similaires

  1. 500 (Internal Server Error) Ajax / ASP / MVC
    Par pachyderme dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 23/12/2015, 18h43
  2. [AJAX] Internal Server Error
    Par hasaike dans le forum AJAX
    Réponses: 1
    Dernier message: 12/12/2011, 09h30
  3. [AJAX] Internal Server Error
    Par kristen44 dans le forum AJAX
    Réponses: 17
    Dernier message: 03/02/2011, 18h03
  4. [SERVLET][STRUTS]Error 500--Internal Server Error
    Par Devil666 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2005, 13h07
  5. [RegEx] [regex][serveur] Internal server error
    Par Maxoo dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2004, 15h40

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