Сохранить результат работы php-скрипта из фрейма

Пришелец

Новичок
Сохранить результат работы php-скрипта из фрейма

Есть следующая структура:
index.html
-------------
PHP:
<html>
<frameset cols="30%, *">
  <frame name="left" src="left.html">
  <frame name="right" src="right.html">
</frameset>
</html>
left.html
----------
PHP:
<html><body>
<ul>
  <li> <a href="1.php" target="right">1.php</a></li>
  <li> <a href="2.php" target="right">2.php</a></li>
...
  <li> <a href="99.php" target="right">99.php</a></li>
  <li> <a href="100.php" target="right">100.php</a></li>
</ul>
</body></html>
right.html
------------
PHP:
<html><body>
  <center><h1> Выберите скрипт из списка </h1></center>
</body></html>
скрипт (1.php)
---------
PHP:
<?
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
?>
<html><body>
  <table>
    <tr> <td align="center" valign="middle">
       <form method='POST' action="1.php">
         <table>
           <tr><th>Параметр 1</th>
             <td><input type="text" name="par1"></td>
           </tr>
           <tr><th>Параметр 2</th>
             <td><input type="text" name="par2"></td>
           </tr>
           <tr><th>Параметр 3</th>
             <td><input type="text" name="par3"></td>
           </tr>
         </table>
         <input type="submit" value="Обработать">
       </form>
  </td></tr></table>
</body></html>
<?
}
else
{
//обработка параметров и вывод результатов. Например такой вот.
  print_r($_POST);
}
?>
Ну все вроде бы просто, сами видите. В левом фрэйме список скриптов, по ссылке выбирается один из них и в правом отображается форма с параметрами, потом по кнопке тот же скрипт обрабатывает введенные значения и выдает некий результат.
Проблема в следующем. После того, как скрипт выдал результаты в броузер, может понадобиться сохранить их в файл. Обычное IE-шное "сохранить как" тут не помогает. В приведенном упрощенном примере просто сохраняется исходная форма, а не результат.
Возможно ли как-то при помощи Javascript решить проблему? Например, в левом фрейме повесить ссылку на некий джаваскрипт, чтобы при нажатии на нее результат работы из правого фрэйма броузер предлагал сохранить в файл.

P.s. Вариант с избавлением от фреймовой структуры не подходит.
 

msdn11

Новичок
можно кроме вывода этого файла, его заархивировать, и дать на него ссылку... просто если дать ссылку на хтмл, то браузер не сохранит, а просто откроет. а архив предложит сохранить...
 

Пришелец

Новичок
Автор оригинала: Пришелец

В новом окне открываются результаты, в принципе это бы могло решить проблему, но... IE-шное "сохранить как" для нового окна почему-то сохраняет содержимое левого фрейма. Как это исправить?
Хмм, решение странноватое, если указать при сохранении тип файла "Веб-страница, только html" (а не "веб-страница полностью"), то результат сохраняется, но ... только в юникодовской кодировке. Несмотря на то, что в скрипте, формирующем страницу, заголовки указываются

PHP:
<html>  
<script> 
function f() { 
  if(window.frames('right').document.getElementById('test')) { 
    var text=window.frames('right').document.getElementById('test').innerHTML; 
    var win=window.open("","test", "statusbar,menubar,top=0,left=0"); 
    var headers='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">' + 
          '\n<html><head>'+
          '\n<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">' +
          '\n</head>\n<body>\n';
    var footer='\n</body></html>';
    win.document.write(headers + text + footer); 
    win.focus(); 
  } 
} 
</script> 
<frameset cols="30%, *">  
  <frame name="left" src="left.html">  
  <frame name="right" src="right.html">  
</frameset>  
</html>
То есть выходит, что мета-тэги не воспринимаются. Но почему, блин?
 

denver

?>Скриптер
мета-тэги не означают что файл будет в этой кодировке. Они означают что читать их нужно в этой кодировке. Это не одно и то же. Они не влияют на сохранение ну никак. Что получил то сохранил.

-~{}~ 04.08.06 18:50:

Сделай ссылку на текущую страницу (юзай GET для передачи ей параметров) и сохраняй кликнув по ней правой кнопкой и выбрав "Save target as...".
 
Сверху