我正在使用php和ireport生成一个有效的报告,但是我只能发送一个参数。我想发送多个参数,以便在MySQL中创建更好的查询。
这是我的代码,使用php仅将一个参数发送到ireport:
我的javascript函数
window.open("../Report1.php?Folio=" + folio);
<?php
$Folio=$_GET["Folio"];
function DescargarArchivo($fichero)
{
$basefichero = basename($fichero);
header( "Content-Type: application/octet-stream");
header( "Content-Length: ".filesize($fichero));
header( "Content-Disposition:attachment;filename=" .$basefichero."");
readfile($fichero);
}
$fecha = time ();
$fecha_partir1=date ( "h" , $fecha ) ;
$fecha_partir2=date ( "i" , $fecha ) ;
$fecha_partir4=date ( "s" , $fecha ) ;
$fecha_partir3=$fecha_partir1-1;
$reporte="CC_";
$filename = $reporte.''. $Folio.'.pdf';
require_once('http://localhost:9977/JavaBridge/java/Java.inc');
require('php-jru/php-jru.php');
$jru=new PJRU();
$Reporte='/var/www/html/ireportFile.jasper';
//save file
$SalidaReporte='/var/www/html/'.$filename;
//here I declare paramenres
$Parametro=new java('java.util.HashMap');
$Parametro->put("Folio", $Folio);
//mysql
$Conexion= new JdbcConnection("com.mysql.jdbc.Driver","jdbc:mysql://localhost/Ignisterra?zeroDateTimeBehavior=convertToNull","local","local");
$jru->runReportToPdfFile($Reporte,$SalidaReporte,$Parametro,$Conexion->getConnection());
if(file_exists($SalidaReporte))
{
DescargarArchivo($filename);
if(file_exists($SalidaReporte))
{
if(unlink($filename))
{
}
}
}
?>
以下是使用我发送的参数$P{Folio}
在ireport中进行的查询:
SELECT * FROM TBL_1 WHERE ID = $P{Folio};
使用此代码,我只能提交一个参数。我不知道如何修改此参数以将多个参数发送给ireport。
我希望这个解释很清楚。问候
答案 0 :(得分:1)
您可以使用&
做类似的事情...
window.open("../Report1.php?Folio=" + folio + "&OtherVariable=" + otherVariable);
然后在您的PHP文件中输入类似...
$otherVar = $_GET["OtherVariable"]
此外,使用post会更安全,并且可以在post调用中添加多个参数(其他变量),而不会在请求URL中不安全地显示它们。