フィールド「from」と「to」のユーザー入力があります。これは、mysqlテーブルをcsvファイルにエクスポートし、ダウンロード用に新しいウィンドウで開く2つの異なるphpファイルに送信する必要があります。ユーザーがダウンロードするテーブルが2つとCSVファイルが2つあるので、エクスポートを行う2つのphpファイルに値を渡すためのこのフォームがあります。
以下のコードには2つのフォームと2つのphpがあり、最初の1つだけが正常に機能しています。2番目のフォームは$_POST配列にアクセスできません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>EXPORT INVOICE </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript">
function runscript()
{
document.f1.submit();
document.f2.submit();
}
</SCRIPT>
</head>
<body>
<form name="f1" method="post" action="export-tst-with-header.php" target="_blank">
<br>
<span class="sty2">Enter to export From Invoice No.:</span> <input type="text" size='10' maxlength='10' name="finv">
<span class="sty2">To Invoice No:</span> <input type="text" size='10' maxlength='10' name="tinv">
</form>
<form name="f2" method="post" action="export-tst-with-header2.php" target="_blank">
</form>
<input type="button" value="Export" onClick="runscript()">
</body>
</html>
以下は、mysqlテーブルをcsvファイルに変換する最初のEXPORTファイルです。これは正常に機能しています。2番目のファイルも同じですが、エクスポートされたテーブルのみが異なり、機能していません。
<?php
//echo "Exporting file - process"."<br><br>";
$dbservertype='mysql';
$servername='localhost';
$dbusername='aab';
$dbpassword='aabs';
$dbname='aab';
////////////////////////////////////////
////// DONOT EDIT BELOW /////////
///////////////////////////////////////
connecttodb($servername,$dbname,$dbusername,$dbpassword);
function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
global $link;
$link=mysql_connect ("$servername","$dbuser","$dbpassword");
if(!$link){die("Could not connect to MySQL");}
mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
}
//////// End of connecting to database ////////
$from=$_POST['finv'];
$to=$_POST['tinv'];
//echo $_POST['action'];
//if ($_POST['action'] == 'download')
//{
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=downloadinv.csv");
header("Pragma: no-cache");
header("Expires: 0");
$query = "SELECT * FROM INVHDR WHERE Invno between $from AND $to";
$export = mysql_query ($query ) or die ( "Sql error : " . mysql_error( ) );
$fields = mysql_num_fields ( $export );
for ( $i = 0; $i < $fields; $i++ )
{
$header .= mysql_field_name( $export , $i ) . "\t";
}
while( $row = mysql_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );
if ( $data == "" )
{
$data = "\n(0) Records Found!\n";
}
mysql_query("UPDATE INVHDR SET Export=1 WHERE Invno between $from AND $to");
print "$header\n$data";
//}
exit();
php?>