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 <rquadl...@googlemail.com> wrote:
> 2009/6/23 Robaj <robrass...@gmail.com>:
>
>
>
>
>
> > 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 prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to