执行一个功能

时间:2015-05-20 15:30:06

标签: php function pdf

我正在尝试使用按钮执行函数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>

1 个答案:

答案 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

可能还有更多工作要做 - 你可能还需要:

  • 输出PDF内容类型标题
  • 退出,​​因此不会呈现HTML

不要忘记解决安全漏洞 - 不能忽视它们。