我正在尝试使用按钮执行函数excel()和pdf(),但它无效。
我只需要列出搜索,然后我需要两个按钮,一个用于生成pdf,另一个用于excel。
<?php
define('FPDF_FONTPATH', 'font/');
require('fpdf.php');
$pdf=new FPDF('p', 'cm', 'A4');
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('Arial','',12);
include "conexao.php";
$busca = $_POST['palavra'];// palavra que o usuario digitou
$busca_query = mysql_query("SELECT * FROM carreteiro WHERE nome LIKE '%$busca%' or cidade like '%$busca%' or estado like '%$busca%' or bairro like '%$busca%' or rua like '%$busca%'")or die(mysql_error());//faz a busca com as palavras enviadas
if (empty($busca_query)) {
echo "Nenhum registro encontrado.";
}
// quando existir algo em '$busca_query' ele realizará o script abaixo.
while ($dados = mysql_fetch_array($busca_query)) {
echo "Nome : $dados[nome]<br />";
echo "Cidade: $dados[cidade] <br />";
echo "Estado: $dados[estado]<br />";
echo "Rua: $dados[rua]<br />";
echo "Bairro: $dados[bairro]<br />";
echo "<hr>";
}
//inicio pdf /////////////////////////////////
function pdf(){
$exe = mysql_query("SELECT * FROM carreteiro WHERE nome LIKE '%$busca%' or cidade like '%$busca%' or estado like '%$busca%' or bairro like '%$busca%' or rua like '%$busca%'")or die(mysql_error());
while ($dados = mysql_fetch_array($exe))
{
$pdf->Cell(3,1,$dados['nome'],1,0,'L');
$pdf->Cell(4,1,$dados['cidade'],1,0,'L');
$pdf->Cell(2,1,$dados['estado'],1,0,'L');
$pdf->Cell(5,1,$dados['rua'],1,0,'L');
$pdf->Cell(5,1,$dados['bairro'],1,0,'L');
}
ob_start ();
$pdf->Output();
}
?>
<form action="pdf()"><input type="submit" value="Gerar PDF" /></form>
答案 0 :(得分:1)
改变这个:
<form action="pdf()"><input type="submit" value="Gerar PDF" /></form>
到此:
<form method="post">
<input name="submit" type="submit" value="Gerar PDF" />
</form>
在您的代码中,在适当的位置(我无法告诉您在哪里),您需要添加类似以下代码的内容。您需要确保此时没有输出HTML,因为如果将PDF发送到浏览器,您不希望发送PDF和HTML的混合 - 这没有任何意义。
if ($_POST) {
pdf();
}
所以,这个脚本有两种作用:
get
访问时,会呈现HTML /表单post
访问时,会创建PDF 可能还有更多工作要做 - 你可能还需要:
不要忘记解决安全漏洞 - 不能忽视它们。