Look at the output buffer handling functions:

ob_handler etc.

These let you take the final (or intermediate) output of the script and do whatever 
you want with it
e.g. save it, or in your case save it and empty it.  In that case your user could have 
a simple SAVE
button which ran the entire script and then at the last minute saved the output, 
(possibly with
extra stuff added in), as a static page (or in a database) but didn't pass it back to 
the user at
all.


Tom Smith wrote:
> 
> Hi All,
> Here is the problem:
> I have a quey building form that returns results from a database as a form to 
>generate a new query.
> On open, it shows a form, then on submit it shows resutls that are in a form 
>(checkboxes that let
> you omit that record from the next query by $id).
> 
> What I want to do is let the user save the page to show others in his group. First I 
>though of
> saving the query, but then it seemed simpler to just save the resutling html to a 
>file that could be
> referenced in email.
> 
> How do you get the current page to slurp into a file along with all the current 
>variables?
> 
> On an unrelated note, it seems like I'm generating the restults twice. Any input on 
>how to
> stream-line it?
> 
> full script:
> <?php
> if ($save) { //save is a hidden field, will always be true so that I can test 
>fwriting to saved.html
>         $fp = fopen("/home/www/html/locations/site/saved.html", w);
>         //$fp = fopen("saved.html", w);
>         //fflush($fp);
>         //fpassthru($fp);
>         fwrite($fp, ??);
> }
> 
> # ln -s index.php omit.php
> # This file is a search form/query builder with the ability to
> # pare down a result set.
> function Refine($query, $to_omit) {
> 
>         $query = str_replace("order by locations.id", "AND ", $query);
> 
> /* //debug:
>         foreach ($HTTP_POST_VARS as $k => $v){
>                 echo "k: $k, v: <pre>$v</pre>";
>         }
> */
>         if ($to_omit) {
>                 trim($to_omit);
>                 $arr_to_omit = explode(" ", $to_omit);
>                 array_pop($arr_to_omit);
>                 foreach($arr_to_omit as $v) {
>                         $query .= "locations.id != '$v' AND \n";
> 
>                 }
> 
>         }
> 
>         $query = chop($query);
>         $query = substr_replace($query, '', -3, 3);
> 
>         $query .= " order by locations.id";
>         $query = str_replace("~", "'", $query);
>         return $query;
> }
> 
> ?>
> <html>
> <head><title>Locations search</title>
> <link rel="stylesheet" href="images/klamath.css" type="text/css">
> 
> <script language="JavaScript">
> <!-- hide from old browser//
> function checkOmit() {
>         var form = document.refine
>         form.to_omit.value = ''
>         for (var i = 0; i < (form.omit.length); i++) {
>                 if (form.omit[i].checked) {
>                         form.to_omit.value += (form.omit[i].value) + ' '
>                 }
>         }
>         return true
> }
> //quit hiding -->
> </script>
> 
> </head>
> <body bgcolor="#6E89AB">
> 
> <?php
> $db = mysql_connect("localhost", "user", "password")
>         or die ("No connection");
> 
> mysql_select_db("locations",$db)
>         or die ("No select db");
> 
> if ($submit == 'refine') {
> 
>         Refine(&$query, $to_omit);
> 
> //debug:
> //      echo "<h2>After function calll we get:</h2>\"$query\"";
> 
>         /* //debug:
>         $headers = getallheaders();
>         while (list ($header, $value) = each ($headers)) {
>         echo "$header: $value<br>\n";
>         }
>         */
> 
> 
>         $res = mysql_query ($query, $db)
>         or die ("<br>Bad query, comrade. line 77, number: ".mysql_errno().", ". 
>mysql_error());
>         $query = str_replace("'", "~", $query); //gotta hack 2wice
> 
>         $numrows = mysql_numrows($res);
> 
>         if($numrows < 1) {
>                 echo "Nope, nothing like that.";
>         }
> 
>         echo "<h2>Refined Results:</h2>\n";
>         echo "<form name=refine onSubmit='return checkOmit();' method=post>\n";
>         echo "<input type=hidden name=query value=\"$query\"><br>";
>         echo "<input type=hidden name=refine value=true>\n";
>         echo "<input type=hidden name=to_omit value='$to_omit'>\n";
>         echo "<input type=hidden name=save value='save'>\n";
> 
> 
>         echo "<table><tr><td background='images/bg-menu.gif'valign=top>\n";
>         include "menu.php";
>         echo "</td><td>\n";
> 
>         echo "<table align=center width=95%>\n";
>         echo "<tr 
>bgcolor=silver><td>Thumbnail</td><td>Address</td><td>Contact</td></tr>\n";
> 
>         $c = 0;
> 
>         while (($row = mysql_fetch_array ($res)) && $numrows > 0) {
> 
>                 $c++;
>                 $id = $row[id];
>                 $loc_name = $row[loc_name];
>                 $folder = $row[folder];
>                 $thumb = $row[thumb];
>                 $address = $row[address];
>                 $city = $row[city];
>                 $state = $row[state];
>                 $zip = $row[zip];
>                 $contact_id = $row[contact_id];
>                 $name = $row[name];
> 
> 
>                 if(strlen($description) > 150) {
>                         $description = substr($row[description], 0, 150).'...';
>                 }
> 
> 
>                 $type = $row[type];
> 
>                 if ($c % 2 == 0) {
>                         $bg = "bgcolor=lightgrey";
>                 } else {
>                         $bg = 'bgcolor=white';
>                 }
> 
>                 echo "<tr $bg>\n
>                 <td><input type=checkbox name=omit value=$id>Omit<br>\n
> 
>                 <a href='$PHP_SELF?id=$id'><img 
>src='$folder/thumbs/$thumb'></a></td>\n
> 
>                 <td>$loc_name<br>$address<br>$city, $state $zip</td>\n
> 
>                 <td>$name</td></tr>";
> 
>         }
> 
> 
>         echo "<tr bgcolor=black><td colspan=3><font color=red>";
>         //debug:
>         //echo "Count of results: $numrows, contents of to_omit: $to_omit";
>         echo "Count of results: $numrows";
> 
>         echo "</font></td></tr>
>         <tr><td colspan=3><input type=submit name=submit value=refine>
>         <input type=reset name=reset value=reset></td></tr>
>         </table>
>         </td></tr></table>
> 
>         </form>";
>         //debug:
>         //echo $query;
> 
> } elseif ($id > 0){  // end refine, here begins detail record bookmark
> 
>         $query = "select * from locations, contact
>         where contact_id = contact.id and locations.id = '$id'";
>         //debug:
>         //echo "$query<br><br>";
> 
>         $res = mysql_query ($query, $db)
>         or die ("No selection, number: ".mysql_errno().", ". mysql_error());
> 
>         $row = mysql_fetch_array($res);
> 
>         /* //debug:
>         foreach($row as $k => $v){
>                 echo "k: $k, v: $v<br>";
>         }
>         */
> 
>         $location_id = $row[0];
>         $loc_name = $row[loc_name];
>         $rci = $row[rci];
>         $folder = $row[folder];
>         $thumb = $row[thumb];
>         $type = $row[type];
>         $description = $row[description];
>         $rooms = $row[rooms];
>         $kw = $row[kw];
>         $special = $row[special];
>         $address = $row[10];
>         $city = $row[11];
>         $state = $row[12];
>         $zip = $row[13];
>         $contact_id = $row[contact_id];
> 
>         $id = $row[15];
>         $name = $row[name];
>         $c_address = $row[address];
>         $c_city = $row[city];
>         $c_state = $row[state];
>         $c_zip = $row[zip];
>         $c_phone = $row[phone];
>         $email = $row[email];
> 
> 
>         echo "<table width=95% align=center><tr><td valign=top bgcolor=lightgrey>
>         <b>id:</b> $location_id<br>\n
>         <b>Thumbnail:</b> <br>
>         <a href='/locations/site/$folder/' target=ass>
>         <img src='/locations/site/$folder/thumbs/hero.jpg' heigth='120' width=160' 
>alt='Click to
> open new window with links to large images'>
>         <br>$loc_name </a><br><font size=1>Click to open images in new 
>window</font><br><br>\n
>         <b>Site Name:</b> $loc_name <br>\n
>         <b>Address:</b> $address <br>\n
>         <b>City:</b> $city, $state $zip<br><br>\n
>         <b>Zone(rci):</b> $rci<br>\n
>         <b>Type:</b> $type<br>\n
>         <b>Description:</b> $description<br>\n
>         <b>Rooms:</b> $rooms<br>\n
>         <b>Keywords:</b> $kw<br>\n
>         <b>Special:</b> $special<br>\n
> 
> 
>         <br><br>
>         <b>Contact:</b><br>
>         Name: $name<br>\n
>         Address: $c_address<br>\n
>         $c_city, $c_state $c_zip<br><br>\n
>         <b>Phone:</b> $c_phone<br>
>         <b>Email:</b> $email<br>
>         <a 
>href='http://maps.yahoo.com?addr=".urlencode("$address")."&csv=$zip'>Driving
> Directions</a><br>\n
>         </td><td valign=top>";
> 
>         ##start inc.menu for detail display
>         $dio = opendir("$folder/thumbs");
>         $i=0;
>         while ($file = readdir($dio)){
>                 if(is_dir($file)==false && substr($file, 0, 4) != "inc." && 
>substr($file, 0, 1) !=
> '.'){
>                         $farray[$i] = $file;
>                         $i++;
>                 }
>         }
>         if (is_array($farray)==true) {
>                 sort($farray);
>         }
>         for ($j = 0; $j < $i; $j++){
>                 if (substr($farray[$j], -4) == '.htm') {
>                         echo "<a href='$folder/thumbs/$farray[$j]'>\n";
>                         echo "<img src='$folder/thumbs/".substr($farray[$j], 0, 
>-4)."'
> border=0></a>";
>                 }
>         }
>         closedir($dio);
>         ## end inc.menu stuff
>         echo "</td></tr></table>";
> 
> } elseif ($search) {  //end detail begin main search form handling, generate query 
>based on input
> bookmark
> 
>         $query = "select locations.id, loc_name, locations.thumb, locations.folder,
>         locations.address, locations.city, locations.state, locations.zip,
>         contact.name from locations, contact
>         where locations.contact_id = contact.id AND \n";
> 
>         if ($rci) {
>                 $query .= "rci = '$rci' AND \n";
>         }
> 
>         if ($type) {
>                 $query .= "type like  '%$type%' AND \n";
>         }
> 
>         if ($description) {
>                 $query .= "description like '%$description%' AND \n";
>         }
> 
>         if ($rooms) {
>                 $query .= "rooms like  '%$rooms%' AND \n";
>         }
> 
>         if ($kw) {
>                 $query .= "kw like  '%$kw%' AND \n";
>         }
> 
>         if ($address) {
>                 $query .= "locations.address like  '%$address%' AND \n";
>         }
> 
>         if ($city) {
>                 $query .= "locations.city like  '%$city%' AND \n";
>         }
> 
>         if ($state) {
>                 $query .= "locations.state like  '%$state%' AND \n";
>         }
> 
>         if ($zip) {
>                 $query .= "locations.zip like  '$zip%' AND \n";
>         }
> 
>         if ($contact_id) {
>                 $query .= "contact_id =  '$contact_id' AND \n";
>         }
> 
> 
> 
> 
>         $query = chop($query); //chop off newline
> 
>         $query = substr_replace($query, "", -3, 3); //chop off AND
>         $query .= " order by locations.id";
> 
> /*  //debug:
>         foreach ($HTTP_POST_VARS as $k => $v){
>                 echo "k: $k, v: <pre>$v</pre>";
>         }
> */
> //      echo "<h2>Query:</h2><pre>\"".$query."\"</pre><br>";
> 
> 
>         $res = mysql_query ($query, $db)
>         or die ("No quyery comrade, number: ".mysql_errno().", ". mysql_error());
>         //hack to make the single quote stay in hte query
>         $query = str_replace("'", "~", $query);
> 
>         $numrows = mysql_numrows($res);
> 
>         if($numrows < 1) {
>                 echo "Nope, nothing like that.";
>         }
> 
> 
>         //gonna try a form here to find a set from out of a set.
>         echo "<h2>Results:</h2>\n";
> 
>         echo "<table width=95%><tr><td background='images/bg-menu.gif'valign=top 
>width=150>\n";
>         include "menu.php";
>         echo "</td><td>\n";
> 
>         echo "<form name=refine action=$PHP_SELF onSubmit='return checkOmit();' 
>method=post>\n";
>         echo "<table align=center width=100%>\n";
>         echo "<input type=hidden name=refine value=true>\n";
>         echo "<input type=hidden name=query value=$query>\n";
>         echo "<input type=hidden name=to_omit value=''>\n";
>         echo "<tr 
>bgcolor=silver><td>Thumbnail</td><td>Address</td><td>Contact</td></tr>\n";
>         $c = 0;
> 
>         while (($row = mysql_fetch_array ($res)) && $numrows > 0) {
> 
>                 $c++;
>                 $id = $row[id];
>                 $loc_name = $row[loc_name];
>                 $folder = $row[folder];
>                 $thumb = $row[thumb];
>                 $address = $row[address];
>                 $city = $row[city];
>                 $state = $row[state];
>                 $zip = $row[zip];
>                 $contact_id = $row[contact_id];
>                 $name = $row[name];
> 
>                 if(strlen($description) > 150) {
>                         $description = substr($row[description], 0, 150).'...';
>                 }
> 
>                 $type = $row[type];
> 
>                 if ($c % 2 == 0) {
>                         $bg = "bgcolor=lightgrey";
>                 } else {
>                         $bg = 'bgcolor=white';
>                 }
> 
>                 echo "<tr $bg>\n
>                 <td><input type=checkbox name=omit value=$id>Omit<br>
>                 <a href='$PHP_SELF?id=$id'><img 
>src='$folder/thumbs/$thumb'></a></td>\n
> 
>                 <td>$loc_name<br>$address<br>$city, $state $zip</td>\n
> 
>                 <td>$name</td></tr>";
>         }
> 
> 
>         echo "<tr bgcolor=black><td colspan=4><font color=red>";
>         echo "Count of results: $numrows, contents of to_omit: $to_omit";
> 
>         echo "</font></td></tr>
>         <tr><td colspan=4><input type=submit name=submit value=refine>
>         <input type=reset name=reset value=reset></td></tr>
>         </table><input type=hidden name=query value='$query'></form>";
>         echo "</td></tr>";
> 
> //debug:
> //      echo "<h2>Query:</h2><pre>$query</pre><br>";
> 
> 
> } else { //end form handling, below is main search form bookmark
> 
> //debug:
> //echo $query;
> 
> ?>
> 
> <h2>Start Page - Search Interface:</h2>
> Intended for in-house use at location library.<br>
> <font color=white>Click Submit to find all records, or enter search terms in the 
>boxes.</font>
> <form name="theForm" method=post action="<?php echo $PHP_SELF; ?>">
>   <input type=hidden name=query value='<?php echo $query; ?>'>
>   <input type=hidden name=search value=true>
>   <div align="center">
>     <div align="center">
>       <table width="450" border="0" cellpadding="0" cellspacing="0">
>         <tr>
>           <td width="152" bgcolor="#C9BB7B" valign="top" 
>background="images/bg-menu.gif">
>             <p>
>                         <a
> href='javascript:document.theForm.submit(document.theForm.rci.value="");'>All</a></p>
>             <p><a
> 
>href='javascript:document.theForm.submit(document.theForm.rci.value="Intersection");'>Intersection</a></p>
>             <p><a href='admin/'>Admin</a></p>
>             <p><a
> 
>href='javascript:document.theForm.submit(document.theForm.rci.value="Residential");'>Residential</a></p>
>             <p><a
> 
>href='javascript:document.theForm.submit(document.theForm.rci.value="Commercial");'>Commercial</a></p>
>             <p><a
> 
>href='javascript:document.theForm.submit(document.theForm.rci.value="Industrial");'>Industrial</a></p>
> 
>             <p><a href='docs/'>Help/Documentation</a></p>
> 
>             <p>&nbsp;</p>
>           </td>
>           <td width="432" bgcolor="#FFCC66">
>             <table width="394" border="0" align="center">
>               <tr>
>                 <td align="right">Zone (rci):</td>
>                 <td>
>                   <select name="rci">
>                     <option value=''>Select Type</option>
> <?php
> $res = mysql_query("select distinct rci from locations", $db);
> while ($myrow = mysql_fetch_array($res)) {
>         echo "<option value=\"$myrow[0]\"";
>         if($rci=="$myrow[0]") echo " selected";
>         echo ">".$myrow[0]."</option>\n";
> }
> ?>
>                   </select>
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Type:</td>
>                 <td>
>                   <input type="text" name="type" value="<?php echo $row[type]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right" height="25">Description:</td>
>                 <td height="25">
>                   <input type="text" name="description" value="<?php echo 
>$row[description]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Rooms:</td>
>                 <td>
>                   <input type="text" name="rooms" value="<?php echo $row[rooms]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Keywords
>                   (kw):</td>
>                 <td> <b>
>                   <input type="text" name="kw" value="<?php echo $row[kw]; ?>">
>                   </b> </td>
>               </tr>
> 
>               <tr>
>                 <td align="right">Address:</td>
>                 <td>
>                   <input type="text" name="address" value="<?php echo $row[address]; 
>?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">City:</td>
>                 <td>
>                   <input type="text" name="city" value="<?php echo $row[city]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">State:</td>
>                 <td>
>                   <input type="text" name="state" value="<?php echo $row[state]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Zip:</td>
>                 <td>
>                   <input type="text" name="zip" value="<?php echo $row[zip]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Contact_id
>                   (id number from contact table):</td>
>                 <td>
>                   <input type="text" name="contact_id" value="<?php echo 
>$row[contact_id]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">phone:</td>
>                 <td>
>                   <input type="text" name="phone" value="<?php echo $row[phone]; ?>">
>                   </td>
>               </tr>
>               <tr>
>                 <td align="right">Email:</td>
>                 <td>
>                   <input type="text" name="email" value="<?php echo $row[email]; ?>">
>                   </td>
>               </tr>
>             </table>
>           </td>
>         </tr>
>       </table>
>     </div>
>   </div>
>   <p align="center"><br>
>     <input type=submit value=submit name=go>
>     <input type=reset name=reset value=Clear>
>   </p>
> </form>
> <?php
> }
> 
> ?>
> 
> </body>
> </html>
> 
> end script
> 
> TIA,
> t

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to