2010-05-27 4 views
0

Je rencontre des problèmes avec jQuery Ajax et PHPAjax JQuery + PHP

J'ai mon fichier php mis en place pour faire écho les données que je suis d'une base de données rassemblais de MySQL. J'ai vérifié que la base de données retourne quelque chose et que la chaîne à la fin de la fonction contient réellement des données. Ce qui se passe cependant, c'est qu'il semble que l'écho php se passe avant l'appel ajax, ce qui fait que les données php sont affichées en haut de la page, et non pas en dessous dans la bonne div.

Je pense que cela pourrait avoir quelque chose à voir avec le calendrier de l'appel ajax et l'appel PHP, mais je ne suis pas sûr. Donc, pourquoi les données ne sont pas attrapées par le .ajax et jetées dans la div?

Merci pour l'aide!

jQuery

$(document).ready(function() { 

$.ajax({ 
    url: "../database_functions.php", 
    type: "GET", 
    data: "cat=jw&sub=pi&sort=no",  
    cache: false, 
    success: function (html) {     
      alert("Success!"); 
      $('#product-list').html(html);   
     }  
    }); 

});

PHP

echo "Hello World"; 

Répondre

0

Êtes-vous sûr que vous n'avez pas utilisé un include ou require dans votre page? Essayez de faire le même sur une nouvelle page vide. En outre, essayez d'ajouter une bordure rouge épaisse à la div, de sorte que vous êtes sûr qu'il est sur la bonne position sur la page, car il pourrait y avoir quelque chose de mal avec votre mise en page. Votre code ne semble pas faux cependant.

+0

J'utilise un include sur la page php pour autoriser les appels db? Cela affecte-t-il les choses? –

+0

Oh, essayez également de mettre l'appel Ajax dans un événement de clic d'un bouton au lieu du chargement de la page, de sorte que vous pouvez voir si c'est le timing. –

+0

@Kris Je veux dire une inclusion sur la page qui utilise jQuery. –

0

Si votre code JQuery est dans le même fichier que le code PHP, il est donné que PHP sera exécuté avant le code JQuery, car JavaScript est côté Client, PHP est côté Serveur, le fichier PHP est exécuté sur le serveur , rendant HTML statique à partir du PHP dynamique, et que lorsque le navigateur client rend la page JavaScript exécuté.

.ajax sera exécuté une seule fois lorsque la page entière est chargée puisque vous avez déclaré en JavaScript que vous voulez qu'elle soit exécutée lorsque l'événement de retour de document est prêt. Pourquoi .ajax ne renvoie pas de valeur, .. Il n'est pas tout à fait clair pour le code que vous avez fourni, le problème pourrait être dans le fichier ou le chemin vers le fichier ajax appel en cours d'exécution.