2010-11-16 6 views
0

J'ai un appel ajax retournant du code HTML. Le code HTML est créé et retourné dans une fonction comme ceci:Importer HTML en tant que chaîne avec PHP Vars

function return_html(){ 
    $title = 'My Form'; 
    $returnObject = array(); 
    $returnObject['html'] = ' 
       <form> 
        <h1>' . $title . '</h1> 
        <input type="text" name="title"/> 
       </form> 
    '; 

    return json_encode($returnObject); 
} 

Ce que je voudrais faire est d'écrire un fichier .php avec tout mon html, VARs comme ça ...

<form> 
    <h1><?php echo $title ?></h1> 
    <input type="text" name="title"/> 
</form> 

puis dans mon importation de fonction ce fichier comme une chaîne avec les vars définies sorta comme ceci:

function return_html(){ 
    $title = 'My Form'; 
    $returnObject = array(); 
    $returnObject['html'] = my_file_as_string_but_with_vars_replaced('formFile.php'); 
    return json_encode($returnObject); 
} 

pensées?

+0

Quelle est votre question? –

+0

Sonne que vous voulez construire un moteur de template. – Hamish

+0

@hamish, quelque chose de similaire, bien que sur une très petite échelle. –

Répondre

2

Peut-être

function return_html() { 
    $title = 'My Form'; 

    ob_start(); 
    require 'formFile.php'; 
    $returnObject = array('html' => ob_get_clean()); 

    return json_encode($returnObject); 
} 
+0

Je vais demander avant d'essayer ... est-ce que cela va remplacer mes php vars avec leurs valeurs? Je ne suis pas certain à 100%, mais j'imagine que j'obtiendrai mes déclarations php comme une chaîne ... par exemple, au lieu de remplacer le 'echo $ title', je verrai 'echo $ title' dans la sortie. –

+0

Les variables seront remplacées dans le fichier requis. En fait, tout ce qu'il fait est d'évaluer le fichier requis et de capturer la sortie sous forme de chaîne. J'ai testé cela sur mon serveur web personnel, et cela devrait fonctionner avec php5. – Matthew

+0

merveilleux. Je vous remercie! :) –

Questions connexes