我有一个 HTML 表单:
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post"><br>
Order Number: <input type="number" name="orderNo" size="10"/>
<input type="submit" value="Download" />
</form>
和 PHP isset:
if(isset($_POST['Download'])){download();}
让用户输入一个数字,然后我希望它运行代码,该代码基于输入的数字创建一个包含表中数据的文件并将文件下载给用户。这可以将下载代码放在一个单独的文件中,并简单地在表单操作中调用该文件,但是我需要它与表单一起在文件中运行。
我目前在同一页面上有另一个表单,它使用 isset 运行函数将文件上传到服务器,这工作正常,但是尝试使用其他代码只会导致没有任何反应。当涉及到这种交互时,我是 PHP 和 HTML 的新手。
以下是下载脚本的完整代码:
function download()
{
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('amazondb', $conn);
$result = mysql_query("SELECT ID, PurchaseDate, BuyerName, ShipCity, ShipState, ShipPostalCode, ShipCountry,
ShipAddress1, ShipAddress2, ShipAddress3 FROM imported_orders");
$orderNo = $_POST['orderNo'];
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if($orderNo>0&&$orderNo<=count($row))
{
$file = fopen('Order.txt', 'w');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
if($row['ID']==($orderNo))
{
fwrite($file, $row['BuyerName'].PHP_EOL .$row['ShipAddress1'].PHP_EOL .$row['ShipAddress2'].PHP_EOL .$row['ShipAddress3'].PHP_EOL .$row['ShipCity'].PHP_EOL .$row['ShipState'].PHP_EOL .$row['ShipPostalCode'].PHP_EOL .$row['ShipCountry'].PHP_EOL);
}
}
fclose($file);
$file = 'Order.txt';
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
readfile($file);
}
else{echo "Please enter a valid Order Number";}
}
这可能很简单,感谢您的帮助。