11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Un questionnement AJAX/PHP pour lequel je n'ai pas trouvé de réponses dans le forum.
Je précise que je débute en AJAX et que j'utilise le framework Jquery.

Initialement:
Mon site Web développé en PHP fonctionne avec l'appel d'include, schématiquement de la manière suivante:

--- index.php
<?php
include config_inc.php // fichier de paramétrage contenant mes variables "globales": $REP_IMG = "./photos"; $REP_GIFS ... etc
[...]
?>

<html>
<head>
</head>
<body>
<?php include menu.php ?> // lignes de menu qui appelle page_00i.php
<?php include page_00i.php ?> // les fichiers page_00i.php utilisent des variables issues de config_inc.php
</body>
</html>


Tout fonctionne bien.

Aujourd'hui, les "page_00i.php" sont appelés en AJAX (via la fonction ajax() ou load()).
load(page_00i.php?pagination=1)
Mais les variables du fichier config_inc.php ne sont plus reconnues.

Notice: Undefined variable: REP_IMG [...]

Deux solutions à mes yeux:
--> Passer les variables dans la fonction load. Ce qui est lourd par le nombre de variables à faire passer
--> Rappeler systématiquement dans tous mes fichiers "page_00i.php" le fichier de paramétrage: include_once("./config_inc.php). Ce qui me semble encore une fois lourd et nécessite de rappeler systématiquement ce fichier sur tout mes fragments page_00i.php

Y aurait-il une solution plus élégante pour ne récupérer ces variables qu'une seule fois au chargement
de la page index.php et les rendre accessibles dans les fragments html page_00i.php lors du chargement via AJAX ?

Merci pour votre aide.
Bonjour,

Pas de réponse...Peut-être ne suis-je pas très clair dans l'énoncé du problème...
Smiley decu
Merci par avance...
Salut...

je vais te faire une réponse... Smiley smile je suis dans un bon jours.. et là je fais une petite pause code Smiley cligne

Il faut bien comprendre que lorsque tu charges ta page en ajax, le retour que tu affiche est du HTML...

Cette simple phrase devrait résoudre immédiatement ton problème et répondre à ta question en même temps Smiley smile

au pire, je repasserai plus tard donc je compléterai si tu ne comprend pas... Smiley smile
pchlj a écrit :
Salut...
je vais te faire une réponse... Smiley smile je suis dans un bon jours.. et là je fais une petite pause code Smiley cligne
Smiley smile

Salut...
Je vais te faire une réponse moi aussi... Smiley biggrin ... je suis dans un bon jour aussi ... merci pour ta réponse.
Je comprends bien le problème ... d’où ma question initiale. Et donc, comment faut-il s'y prendre "au mieux" ???
Un autre exemple si besoin:
j'ai une page php que j'appelle en ajax (via Jquery) : photos.php
avec fonction_photos.php une fonction appelé dans cette page qui me ramène le "nombre de photos total".
soit une autre page php que j'appelle toujours via ajax, juste après photo.php : pagination.php
Cette page php appelle une fonction - fonction_pagination.php - qui admet en paramètre la variable "nombre de photos total".
Comment je réalise ce passage de paramètre ? comment je fais pour que ma variable php "nombre de photos total" soit connu de pagination.php appelé en ajax ?
J'ai pensé aux sessions mais est-ce la meilleur des solutions...

Merci par avance...
Re Smiley cligne

je savais que cette réponse ne suffirait pas Smiley smile

Qd tu appelle du code en ajax, du php par exemple, il est traité AVANT de revenir via ajax, ça n'a donc rien à voir avec un include php

Pour que la page que tu appelles via ajax connaisse les variables il faut lui envoyer lors de l'appel... en get ou en post peu importe mais il est impératif que ces variables parte avec la requète...

Tu utilise jquery donc utilise le correctement..

$("#feeds").load("feeds.html",
   {limit: 25},
   function() { alert("The last 25 entries in the feed have been loaded"); }
 );


limit ici écrit est une variable passée en GET
et bien sur les variables de config ne sont pas reconnu, il faut donc inclure config dans les php que tu appelles via ajax
pchlj a écrit :
et bien sur les variables de config ne sont pas reconnu, il faut donc inclure config dans les php que tu appelles via ajax

Ok, c'est ce que je fais dorénavant mais c'est donc plus "lourd" et moins "propre" : rappeler config_inc en include dans tous les fragments PHP appelés en AJAX...

pchlj a écrit :

[...]
Pour que la page que tu appelles via ajax connaisse les variables il faut lui envoyer lors de l'appel... en get ou en post peu importe mais il est impératif que ces variables parte avec la requète...
[...]

Merci déjà pour ta réponse et ton exemple. Je comprends bien le besoin et le problème.
Bon, concrètement:

-----------CONTAINER.PHP------------->
@$page  = $_POST["page"];
// fonction qui affiche les 10 images de la page courante 
// et qui retourne le tableau de toutes les images
$images = filmstripImages($page); 

-------------------------------------

-----------FOOTER.PHP---------------->
@$page  = $_POST["page"];
$nbImages=count($images);
// fonction de pagination [1 | 2 | 3.....etc ]
pagination($nbImages,$page,$NB_IMAGES_PAGE); 

-------------------------------------

et AJAX dans la page index.php


<SCRIPT>
  [...]

  function loadImages(page) {
    $('#container').load('container.php?page='+page);
  }

  function loadPages(page) {
    $('#footer').load('footer.php?page='+page);
  }	
  	
  // For the first time
  loadImages("1");  [b][#red]// COMMENT faire passer la variable $images à loadPages ???[/#][/b]
  loadPages("1"); 

  [...]
</SCRIPT>


C'est donc bien ici que je bloque...
... tu n'as pas regardé mon exemple Smiley decu



function loadImages(page) {

    $('#container').load('container.php',{page:page});

  }



tout simplement... enfin normalement Smiley smile