Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/10/2011, 19h24   #1
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
Par défaut 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
Citation:
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 :
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 :
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 :
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
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 19h43   #2
Nouveau Membre du Club
 
Inscription : février 2009
Messages : 261
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 261
Points : 30
Points : 30
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 :
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..
absot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h19.


 
 
 
 
Partenaires

Hébergement Web