0
我有一個用戶輸入的字段'從'和'到'必須提交給兩個不同的php文件,它將mysql表導出到csv文件並打開它在一個新的窗口下載。 因爲我有2個表格和2個CSV文件要由用戶下載,我有這種形式來傳遞值到2個PHP文件,這是導出。傳遞一個值使用2個表格到多個php文件
下面的代碼有2個表格和2個phps,只有第一個工作正常。第二種形式無法訪問$ _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文件,這是工作的罰款,第二個文件也是相同的,但只有導出的表是不同的,這是不工作:
<?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?>
我添加了隱藏字段爲第二種形式,它不工作,我的代碼:\t \t
– 2013-03-06 11:17:47你需要爲它賦值$ _POST ['t inv'] 如果您使用SESSION,我不鼓勵這種解決方案,它會更容易 – gsmida 2013-03-06 11:22:35
Thankyou,會話正常工作。只是添加了這個:session_start();如果(isset($ _ POST ['Submit'])){ \t \t $ _SESSION ['finv'] = $ _POST ['finv']; \t \t $ _SESSION ['tinv'] = $ _POST ['tinv']; \t \t} – 2013-03-06 11:26:53