I really think you are overthinking this!
If you want to echo out "<?php echo('FOO'); ?> for instance and have the
preprocessor parse it... you need to (dangerously) eval it ....
$variable="<?php echo('<p>foo</p>'); ?>";
eval($variable);
....... "<p>foo</p>" is returned to the browser...
So (and i highly do not recommend this unless you truely trust the text in
your database and the files it is opening) u must use php's eval();
Like so ... (using your variables)
eval($retstr);
then anything inside that variable or file will be evall'd as opcode and
passed through the pre-processor and you will be left with html or whatever
your php code spits out!
HTH
Alex
----- Original Message -----
From: "Robaj" <[email protected]>
To: "Prototype & script.aculo.us" <[email protected]>
Sent: Wednesday, June 24, 2009 7:44 AM
Subject: [Proto-Scripty] Re: php in files
Ok, let me put my idea to you and see if there is a way without
reloading the whole page -
I use prototype.js and project.js. project.js is just my entensions
for each project, which I have narrowed down to two functions, -
function myRequest( text ) {
new Ajax.Request('requests.php',
{
method: 'post',
postBody: text,
onComplete: myResponse
});
}
function myResponse(req) {
$(targetdiv).innerHTML= req.responseText;
}
Where text is supplied from the controls, such as 'page=home'.
request.php is the only php file called directly, it decides which
response is wanted and returns the text for a control or entire body
for <div id='mainbody'></div>
All of my pages and controls within them are created in php from the
database. This is very easy to maintain and update, so a nice base for
all kinds of applications
All works well if I only respond with html including the ajax side
that recalls requests.php, the only problem is that I intended some of
the pages to be applications, so I want them to have php and can not
see a way to pass it through the preprocessor.
My request.php at the server side is like this -
$Home=$button=$update=$testButton=$menuItem="";
extract($_POST,EXTR_IF_EXISTS);
if($menuItem != "")
{
$retstr = "";
$dbconn = getdbconnection();
//find page associated with this menu item
$query = 'SELECT body FROM menu WHERE name=\''.$menuItem.'\'';
$result = pg_query($dbconn,$query) or die('Query failed: ' .
pg_last_error());
$row = pg_fetch_row($result);
//read in the file
if(file_exists($row[0]))
{
$handle = fopen($row[0],"r");
$retstr = fread($handle,filesize($row[0]));
fclose($handle);
//failed attempt to use include instead
//$retstr = "<?php include ".$row[0]."; ?>";
}
else
{
$retstr = "File not created yet";
}
pg_close($dbconn);
echo $retstr;
}
In the end this would leave me with only one main page index.php and
all other pages called up via ajax and created or loaded via php.
I have the feeling now that I have to update the whole page, not a
terrible tragedy, but I just have the feeling that I can somehow put
my fread() file through the php preprocessor.
On Jun 23, 3:09 pm, Richard Quadling <[email protected]> wrote:
> 2009/6/23 Robaj <[email protected]>:
>
>
>
>
>
> > I know this isn't strictly speaking a Prototype issue, but this is the
> > only group I am in and a few topics do skirt around the edges of your
> > main topic.
>
> > If I have a file -
> > home.php
> > <?php
> > echo "<h1>A very interesting home page</h1>";
> > ?>
>
> > Then the file is returned to go into <div id="mainbody"></div> with a
> > plain fread() into a variable which is 'echo'd back to the client.
>
> > 'include'ing this file is fine, but then it passes through php at the
> > same time as everything else.
>
> > But any such file loaded as the action of an Ajax call is not fine. It
> > doesn't get passed via php, or at least I don't think it does -
> > because in 'mainbody' I get part of it such as
>
> > Interesting"; ?>
>
> > Confusing because if it were being passed through php I would expect
> > 'Interesting'. but if it were not, then I would expect the whole file
> > in plain text.
>
> > I knew when I did this with fread I was probably heading for trouble,
> > but which is happening,
> > partial php parseing,
> > no php parseing or
> > ..... ?
>
> If you use fread(), you are reading a file. Any file. Nothing magic.
> No processing.
> If you use include()/require()/include_once()/require_once(), then PHP
> will process that file if it contains a valid opening tag (<?php).
>
> Uploading a file does NOT process the file. The file is only processed
> when it is requested.
>
> Can you provide any more information about what you are trying to do?
>
> Maybe using the PHP General list would also be a better place for this
> thread? (http://docs.php.net/mailing-lists.php)
>
> Regards,
>
> Richard.
>
> --
> -----
> Richard Quadling
> Zend Certified Engineer :http://zend.com/zce.php?c=ZEND002498&r=213474731
> "Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Prototype & script.aculo.us" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---