Section: Générer du texte brut
« Générer une page HTML5 | ^ Générer du contenu avec les vues | Générer du XML quelconque » |
Il faut utiliser jResponseText
qui est récupérable via l'alias "text". Cet
objet possède une propriété "content" dans laquelle vous mettez le texte voulu.
function myaction(){
$rep = $this->getResponse('text');
$rep->content = 'my text';
return $rep;
}
Par défaut, jResponseText renvoi le type mime text/plain et avec le charset indiqué dans la config de jelix.
Toutefois, comme jResponseText dérive de jResponse
, vous pouvez modifier
les en-têtes http, donc le type mime et le charset.
D'ailleurs, jResponseText peut-être utilisé comme base pour d'autres formats à contenu textuels (CSV par exemple).
Voici un exemple concret:
- Partie client (javascript)
var http;
function AppelText()
{
var maVar = "Bonjour";
var url ={/literal}{urljsstring 'MonModule~MonControleur:MaFonction', array('param1'=>'4'), array('param2'=>'maVar')}{literal};
if(window.XMLHttpRequest)
{ // Mozilla, Safari, ...
http = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{ // Internet Explorer
http = new ActiveXObject("Microsoft.XMLHTTP");
}
http.open('get', url, true);
http.onreadystatechange = handler;
http.send(null);
}
function handler()
{
if(http.readyState == 4)
{
if(http.status == 200)
{
alert(http.responseText);
}
}
}
- Partie Serveur (php)
function MaFonction()
{
$rep = $this->getResponse("text");
$param1 = $this->param("param1");
$param2 = $this->param("param2");
$rep->content = "bonjour";
return $rep;
}
Bien évidemment cet exemple reste un exemple simple, on peut y mettre ce que l'on veut et faire passer les paramètres soit en get soit en post.
Petit rappel, les deux arrays que l'on trouve dans la chaîne url (coté javascript) permettent tout simplement pour le premier de faire passer un paramètre en statique (codé en dur) et le deuxième provenant d'une variable javascript. Les fonctions de templates.