У меня есть три файла. Основной файл - dispatch.php. Из этого файла пользователь будет выбирать различные варианты, которые используют построитель запросов на другой странице с именем dispatch-grid.php. В dispatch-grid.php запрос строится и отображается на dispatch.php.PHP pass querystring на другую страницу
Вот запрос от отправки-grid.php, который вызывает базу данных и отображает сетку на dispatch.php:
<?php
$select = "SELECT DISTINCT * FROM `dispatch_read`" . " WHERE " . $where . ";";
$QueryResult = @mysql_query($select) or die();
$resnum = mysql_num_rows($QueryResult);
if($resnum == 0){
echo "<div>Your search returned no results</div>";
}
else {
echo "<table>\n";
echo "<thead><tr>" .
echo "<th>BOL</th>" .
echo "<th>CONTAINER</th>" .
echo "<th>STATUS</th>" .
echo "</tr></thead>" .
echo "<tbody>\n";
while(($Row = mysql_fetch_assoc($QueryResult)) !== FALSE){
echo "<tr>";
echo "<td>{$Row[BOL]}</td>";
echo "<td>{$Row[CONTAINER]}</td>";
echo "<td>{$Row[STATUS]}</td>";
echo "</tr></tbody>\n";
echo "</table>\n";
}
}
Есть много больше строк, которые я отображения. Я просто старался держать это как можно короче.
можно отобразить эту сетку на dispatch.php с помощью этой функции:
displayrecords();
В этот момент, сетка отображается на dispatch.php. Теперь мне нужно выполнить запрос от dispatch-grid.php ($ select) на другую страницу, называемую getreport.php, где я смогу экспортировать сетку в лист excel.
На dispatch.php, у меня есть кнопка ввода:
<input onclick="getreport()" type="button" value="Get Report" />
Кнопка вызывает в яваскрипта функцию на той же странице:
*** UPDATE ***
function getreport(){
window.location = "getreport.php?where=$where";
}
На данный момент, я в состоянии, чтобы открыть лист excel, но он открывается пустым. Я не уверен, если это необходимо, чтобы показать, но вот код на getreport.php:
<?php
include("include/database.php";
global $header;
global $data;
global $ts;
$ts = date('mdY-His');
$sep = "\t";
$filename = "excelfilename";
*** UPDATE ***
$sql = "SELECT DISTINCT * FROM dispatch_read WHERE " . $_GET['where'] . ";";
$result = @mysql_query($sql) or die ("Couldn't execute query" . mysql_error());
$file_ending = "xls";
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
$sep = "\t";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
while($row = mysql_fetch_row($result))
{
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++)
{
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
}
?>
Игнорируйте опечатки. Я могу отображать сетку без проблем. Мой код работает до тех пор, пока не нажмет кнопку getreport.
Я угадываю, что мне нужно сделать, это отправить запрос ($ select) из dispatch-grid.php в getreport.php, но я не уверен, как это сделать.
Я попытался сделать это на dispatch.php:
$query_string = $_SERVER['QUERY_STRING'];
Затем я попытался отправить, что getreport.php, но я был неудачен его отправкой.
Буду признателен за любую помощь.
спасибо.
какое значение $ где хранится? – dev1234
$ где хранятся различные выборы, которые пользователь выполнил с помощью выпадающих меню. Я не показывал его, потому что не думал, что нужно показывать. В этот момент сетка отображается на dispatch.php. Все, что мне нужно сделать, это отправить $ select из dispatch-grid.php в getreport.php. – HoodCoderMan
Проверьте мой ответ ниже. – dev1234