Page 1 sur 2

Ajax dans mon site SOS !

Posté : 05 juil. 2014, 14:14
par LAMASPANZER
Salut les amis,
bon alors voila j'aimerai mettre un systeme ajax sur mon site:
la page index.php tout le contenu de chaque page ce passe sur cette page (Architecture MVC) voici sont contenus:
<?php
header( 'content-type: text/html; charset=utf-8' );
define('CAN', true);

session_start();
// Initialisation
include_once('init.php');
include_once(PATH_INCLUDES.'/pdo_connect.php');
//Assemblage de la page
include_once(PATH_INCLUDES.'/header_page.php');
include_once(PATH_INCLUDES.'/nav_page.php');

//Controleur demandé dans $_GET['controleur']
if (empty($_GET['controleur'])) {$NOM_CONTROLEUR = NULL; include_once PATH_MVC_CONTROLEUR . '/controleur.home.php';}
ELSE {
	$NOM_CONTROLEUR = $_GET['controleur'];
	$NOM_FICHIER_CONTROLEUR = 'controleur.'. $NOM_CONTROLEUR .'.php';
	if (is_file(PATH_MVC_CONTROLEUR.'/'. $NOM_FICHIER_CONTROLEUR)){
        include PATH_MVC_CONTROLEUR . '/' . $NOM_FICHIER_CONTROLEUR;
	}
	ELSE {
		ECHO 'Ce controleur n\'existe pas';
	}
}

//Pied de page
include_once(PATH_INCLUDES.'/footer_page.php');
?>
Si je suis le principe d'Ajax j'aimerai que lorsque l'on demande la page ('ex: index.php?controleur=liste-serveurs) seulement le controleur soit charger, le reste de la page de se refresh pas
Merci d'avance

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 16:47
par Elie
Bah je comprend pas ce qui est compliqué ?

Tu fais ca :

<a href="ton_lien.html">Test</a>

Apres tu triches en jQuery pour que le lien ne marche pas et raffraichisse:

[javascript]$('a').on('click', function(e) {
e.preventDefault(e); // Annule le fait que on ai cliqué sur un lien.
var controleur = $(this).attr('href');
// Ton code ajax
});[/javascript]

Comme ca tu recupere "ton_lien.html" et tu dis a la page de changer le contenu par le contenu de cette page là.
Comme ca si le mec arrive sur la page directe, elle s'affiche, si il clique sur le lien, elle s'affiche aussi mais la page se recharge pas.

Je t'ai expliqué la logique mais apres c'est un poil plus complexe.
Tu peux également sans recharger la page, mettre à jour l'url dans la barre de navigation.
Avec ca, tu peux meme gerer l'histoirique : http://spoiledmilk.com/blog/html5-chang ... hing-page/

Dis moi si ca t'aide.

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 17:07
par LAMASPANZER
Personne comprend ce que je veux faire il y a pas moyen de faire du vocal ca sera plus simple :)

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 18:29
par Elie
Moi je comprend que tu veux modifier le contenu de ton site sans recharger la page...
Ce que je te propose fait ca :)

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 19:25
par LAMASPANZER
et dans '//ton code ajax' je dois mettre quoi ?

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 19:31
par Elie
Tu met un code en AJAX pour recuperer le contenu d'une page ...

[javascript]
$('a').on('click', function(e) {
e.preventDefault(e); // Annule le fait que on ai cliqué sur un lien.
var page = $(this).attr('href');

$.ajax({
type: 'GET',
url: 'importerPage.php',
data:'page='+page,
processData: true,
async: false,
error:function(msg){
alert( "Error !: " + msg );
},
success:function(data){
$('#le_champ_a_mettre_a_jour').html(data);
}
});
});
[/javascript]

Et tu creer ton fichier importerPage.php
<?php echo file_get_contents($_GET['page']); ?>
Encore une fois c'est du théorique ...

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 20:15
par LAMASPANZER
Faut que je parle en vocal pour expliqué parce que c'est un peu compliqué a comprendre visiblement si quelqu'un se porte volontaire faite moi signe :)

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 20:22
par LAMASPANZER
En plus j'arrive a rien avec ton code
je vous donne le lien de mon site pour voir et comprendre ce que j'esseye de faire : http://nolimitgaming.fr/
Je redis j'aimerai que quand on clique sur l'onglet seulement le contenu change pas, toute la page

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 20:40
par Elie
Quel est l'interet de faire un truc inutile si en plus tu ne sais pas le faire ?

Re: Ajax dans mon site SOS !

Posté : 05 juil. 2014, 21:00
par LAMASPANZER
Juste pour voir de quoi c est capable

Re: [RESOLU] Ajax dans mon site SOS !

Posté : 11 oct. 2014, 00:10
par LAMASPANZER
c est pas une page que je dois appelé mais une fonction qui appelle un controleur en php ! c est ca la difficulté

Re: Ajax dans mon site SOS !

Posté : 13 oct. 2014, 10:36
par Berzemus
L'architecture n'est pas bonne, ou en tout cas, tu as peut-ếtre une idée plus ou moins claire de ce que le pattern "MVC" implique en PHP, mais en y ajoutant de l'ajax tu doit repenser le tout.

Ajax, c'est du javascript asynchrone: les données sont chargées dynamiquement, et quand elles arrivent, javascript se charge de les traiter.

Dans ton modèle MVC (limite inutile, enfin bon), Php n'est que le modèle*. Controlleur et vue devraient tout deux être côté client, si vraiment tu veux utiliser du JS asynchrone utilement.


*: si tu est vraiment, a fond MVC, la couche PHP a son propre controlleur et sa propre vue, vue qui sert alors de modèle a la couche JS. Mais bon, MVC, sa date d'avant le choc pétrolier de '73, donc ne t'en préoccupe pas plus qu'il n'en faut quand même :wink:

Re: Ajax dans mon site SOS !

Posté : 13 oct. 2014, 17:19
par LAMASPANZER
bhé je cherche simplmemnt a afficher la vue en ajaax !

Re: Ajax dans mon site SOS !

Posté : 13 oct. 2014, 22:52
par LAMASPANZER
Humm pourquoi tu dis l architecture n est pas la bonne ... explique toi :)

Re: Ajax dans mon site SOS !

Posté : 14 oct. 2014, 14:55
par Berzemus
Humm pourquoi tu dis l architecture n est pas la bonne ... explique toi :)
Tu pars du principe que ton controleur est en PHP. Mais si tu veux utiliser ajax, ton controleur devrait se trouver chez le client, en javascript. Ou sur les deux. Le fait est que le modèle MVC s'applique mal au web, c'est comme ca, c'est pas prévu pour. Et donc la tu te heurtes à ses limites.

Et si par "charger la vue en ajax", tu veux simplement charger la page HTML complète pour l'afficher, c-a-d emuler un navigateur en JS juste pour le plaisir, ne perds pas ton temps, c'est inutile.