2010-02-09 3 views
0

J'essaie de charger ou de mieux recharger un DIV avec le contenu d'un fichier php inclus. le fichier est donc inclus dans webadmin.php depuis l'emplacement webadmin/pages.php. Ensuite, je modifie certaines données dans la base de données via la sérialisation.jquery load php file - le résultat n'est pas complet

Maintenant, je voudrais recharger le pages.php du callback du serialize POST avec load() ;. Tout cela fonctionne bien jusqu'au moment où les données sont censées être affichées dans la div - je crois que c'est parce que le fichier php est chargé à partir d'un emplacement différent, donc les chemins d'inclusion pour la connexion DB sont probablement faux ...

Dois-je vraiment écrire un fichier PHP supplémentaire pour jquery ou y a-t-il un moyen de dire à jquery où le charger?

C'est la première fois que je fais cela - alors, gardez-moi un instant sur celui-ci ... Merci!

Je pense que ce ne sera pas en utiliser beaucoup, mais voici le code de charge:

$("#right").load("webadmin/pages.php"); 
+0

Juste pensé à nouveau - ne peut pas être le problème des emplacements. puisque le chemin d'inclusion et le javascript se produiraient au même endroit ...hmmm –

Répondre

1

Vous pouvez utiliser Firebug, puis ouvrez l'onglet Net pour voir s'il y a une réponse de l'appel AJAX.

Je n'utilise $.load(), au lieu que j'utilise $.get ou $.post:

$.get("webadmin/pages.php", 
     { nbRandom: Math.random() }, 
     function(data){ 
     $("#right").html(data); 
     }); 

nbRandom est juste pour éviter la mise en cache dans Internet Explorer. Choisissez un nom qui n'est pas utilisé dans le pages.php

Assurez-vous qu'aucune erreur ne se produit dans Firebug et que la structure de la page est un code HTML/XHTML valide. Un bug est survenu parce que les tags sont déséquilibrés dans la page.

+0

Merci - maintenant cela fonctionne. Je ne sais pas pourquoi exactement - même la charge fonctionne maintenant !? mais toujours le problème UTF8 reste ... donc tout mon äöü et tel sont sortis. Et pour ajouter à cela, la liste que je charge a des boutons d'interface utilisateur jQuery attachés pour chaque ligne - ceux-ci ne fonctionnent pas non plus. On dirait que JS ne peut pas gérer les boutons rechargés. Des idées ici? –

+0

J'ai converti mon site en UTF8 - ces problèmes étaient une bombe à retardement de toute façon ... ça ne se charge toujours pas correctement, je suppose que je dois juste bidouiller un peu plus :-) –

0

est la fonction load() quoi que ce soit de retour?

Le script n'est pas dépendant de l'emplacement en termes d'inclusion de BD, etc. Ceux-ci ne concernent que le script PHP lui-même. La fonction ajax s'exécute côté client, alors imaginez qu'elle appelle l'URL par rapport au même emplacement que la page d'origine. Donc, si votre page est:

http://example.com/stuff/page.php 

et vous appelez le script à:

webadmin/pages.php 

l'URL de la méthode de charge ajax utilise est:

http://example.com/stuff/webadmin/pages.php 

C'est exactement même chose que si vous mettez un href pour un lien ou un src pour une image. Si le script est en fait à:

http://example.com/webadmin/pages.php 

Ensuite, vous devez modifier l'URL de charge en conséquence (comme si une image était dans un répertoire inférieur) comme ceci:

$("#right").load("../webadmin/pages.php"); 
+0

Il est intéressant de noter que si webadmin est toujours à la racine, vous pouvez simplement utiliser une barre oblique avant sans junk. Exemple: '/ webadmin/pages.php' ira toujours sur http://www.example.com/webadmin/pages.php même si la page est sur http://www.example.com/a/b/c /d/e/something.php – icktoofay

+0

Oui, le chemin complet fonctionnera aussi. Je ne voulais pas faire mon overkill habituel. – Anthony

+0

Merci pour la réponse. Oui le load() retourne la première partie du fichier php - j'ai créé un fichier spécial pages.ajax.php avec des chemins corrects - toujours les mêmes problèmes qu'une partie seulement est chargée et aussi c'est en UTF8 - j'utilise iso -8859-1 - donc il y a un autre gros hickup là-bas ... –

0
$.get("webadmin/pages.php", 
     { nbRandom: Math.random() }, 
     function(data) { $("#right").html(data); } 
); 

ce code est compris fichier php avec l'aide jquery