2010-12-15 177 views
3

Ce que j'essaie de faire est probablement très simple (l'ironie est que je suis coincé).Comprendre comment utiliser AJAX pour travailler avec smarty en php

J'ai un fichier qui se divise smarty en (modèle et php) fichier. J'ai un petit script js qui envoie une requête ajax pour mettre à jour une variable dans le fichier (php).

Dans le fichier php basé sur ce que je reçois de l'AJAX je fais

$smarty->assign('test',$_GET['test']) 

puis

$smarty->display('index.tpl') 

Maintenant puisqu'il est AJAX Je suis confus que d'envoyer en réponse, comme je montre déjà le modèle.

+0

Je ne comprends pas ce que vous voulez dire. Pouvez-vous reformuler ou montrer un exemple de code? –

+0

Aussi, http://stackoverflow.com/questions/4455780/smarty-and-ajax –

+0

Fondamentalement ce que je suis en train de faire est très simple (l'ironie est que je suis coincé dedans), j'ai un fichier dans lequel se divise intelligemment (fichier template et php). J'ai un petit script js qui envoie une requête ajax pour mettre à jour une variable vers le (fichier php) .Dans le fichier php basé sur ce que je reçois de l'ajax je fais $ smarty-> assign ('test', $ _ GET [ 'test']) puis $ smarty-> display ('index.tpl'), maintenant que c'est ajax je suis confus ce qu'il faut envoyer en réponse, car j'affiche déjà le template. –

Répondre

0

Tout dépend de ce que votre application va faire avec la réponse de la requête AJAX.

Idéalement, votre application côté client (dans javacsript land) s'attend à recevoir des données de votre service Web (au format JSON ou autre), puis l'application côté client manipulera dynamiquement le html (DOM) au besoin .

Cependant, il est probable que vous souhaitiez simplement prendre la réponse de la requête AJAX et la lancer dans un élément html. Si c'est le cas, vous pouvez simplement envoyer votre réponse au format html.

0

Je ne suis pas un gourou Smarty, cependant cette réponse donne un indice quant à la façon d'utiliser Ajax avec Smarty - peut-être que vous pouvez construire sur cela? https://stackoverflow.com/questions/630714/smarty-the-best-choice/632458#632458

Il ressemble au lieu d'appeler $smarty->display() vous devez appeler echo $smarty->fetch()

if($request->isXmlHttpRequest()) { 
    echo $smarty->fetch('your-file.tpl'); 
} 
+0

Merci, je suis à la recherche. –