Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: anroux en 25 de Diciembre 2014, 04:39
-
a ver si logro explicarme...
tengo un codigo php, hago la consulta a la bd...
tengo un boton que me permite imprimir en pdf...
como de la consulta se generan varios formularios para imprimir, deseo colocar ese boton al frente del formulario resultado del ciclo while, para que al darle clic imprima solo esa consulta, que en la bd es la llave principal... este es el codigo: <?php
include ("../menu.php");
include("../../clases/ReporCitacion/ReporCitacion.php");
include("../../conexion/conexion.php");
?>
<html>
<head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<title>.:: Pdf_Citaciones ::.</title>
<style type="text/css">
input
{
font-size:13px;
font-family: Arial, helvetica;
outline:none;
transition: all 0.30s ease-in-out;
-webkit-transition: all 0.30s ease-in-out;
-moz-transition: all 0.30s ease-in-out;
border-radius:3px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border:1px solid rgba(0,0,0, 0.2);
color:gray;
background-color:#eee;
padding: 6px;
}
input:focus
{
box-shadow: 0 0 10px #0066FF;
-webkit-box-shadow: 0 0 10px #0066FF;
-moz-box-shadow: 0 0 10px #0066FF;
border:2px solid #999;
border-radius: 5px;
background-color:white;
}
</style>
<link rel="stylesheet" href="../../css/menu2.css">
<link rel="stylesheet" type="text/css" href="../../css/estilobeneficiario.css">
</head>
<body>
<script type="text/javascript" language="javascript">
function ImprovedTable()
{
documento=document.raiz.ident.value;
//fichanumber=document.raiz.fich.value;
doc01=document.raiz.ident01.value;
// window.open('ReporCitacion.php?doc='+documento, 'impresion', 'status=no, resizable=yes, width=1200, height=700');
window.open('ReporCitacion.php?doc='+documento+'&doc01='+doc01, 'impresion', 'status=no, resizable=yes, width=1200, height=700');
}
</script>
<body background="">
<div id="capaAnimada">
<div id="conte">
<form type=type name=raiz id=raiz method=post action='#' ><br>
<center><br>
<table class="tabla" bgcolor='#CCE5FF' cellpadding='2' cellspacing='2' border='3'>
<td><font color=#000000> IDENTIFICACIÓN<br><input type="text" id="ident" name="ident" size="20"></td><tr>
<!--<td><font color=#000000> EXPEDIDO POR<br><input type="text" id="fich" name="fich" size="40" ></font></td>
<td><font color=#000000> CARGO<br><input type="text" id="ident01" name="ident01" size="10" value="<?php echo $bus?>"></td><tr>-->
<td><font color=#000000><input type="button" value="Aceptar" onClick= "ImprovedTable()" ></font></td>
<td><input type='reset' value='Nuevo PDF'></td>
</table><br>
</form>
</body>
</html>
<?php
if(isset($_POST["btn1"]))
{
$btn=$_POST["btn1"];
$bus=$_POST["txtbus"];
if($btn=="Validar")
{
$consulta_mysql="select citacion.IDBeneficiario,citacion.Apellido1Citado,citacion.Apellido2Citado,citacion.Nombre1Citado,citacion.Nombre2Citado,
citacion.FechaCitacion,citacion.HoraCitacion,citacion.NumeroCitacion,citacion.NumDocCitacion
from citacion
where IDBeneficiario='$bus'";
$resultado_consulta_mysql1=mysql_query($consulta_mysql,$cn);
echo"<center>";
echo"<table border='5' cellspacing='0' bordercolor='2F4F4F' align='center'><br>";
echo"<tr>";
echo"<th colspan='4' align='center'>CITACION(ES)</th>";
echo"</tr>";
echo"<tr>";
echo"<th align='center'>CITADO</th>";
echo"<th align='center'>Fecha Citacion</th>";
echo"<th align='center'>Hora</th>";
echo"<th align='center'>Historia No.</th>";
echo"<th align='center'>Cintacion No.</th>";
echo"<th align='center'>Imprimir</th>";
echo"</tr>";
while($fila=mysql_fetch_array($resultado_consulta_mysql1))
{
echo "<tr>";
echo'<td align="center">'.$fila['Nombre1Citado'].' '.$fila['Nombre2Citado'].' '.$fila['Apellido1Citado'].' '.$fila['Apellido2Citado'].'</td>';
echo'<td align="center">'.$fila['FechaCitacion'].'</td>';
echo'<td>'.$fila['HoraCitacion'].'</td>';
echo'<td>'.$fila['NumDocCitacion'].'</td>';
echo '<td>'.'<input type="text" id="ident01" name="ident01" size="10"'.'value='.$fila['NumeroCitacion'].'>'.'</td>';
echo'<td>'.$fila['NumeroCitacion'].'</td>';
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable()">'.'</td>';
echo"</tr>";
}
echo "</table>";
echo"</center>";
}
}
?>
-
Hola, a ver si puedes explicar un poco mejor porque no he entendido lo que quieres plantear... ¿de qué se trata, de que el usuario pulsa un botón de consulta y se le muestran muchas filas de resultados y cada fila tiene un botón para imprimir en pdf? ¿Por qué dices que de la consulta se generan varios formularios para imprimir? ¿Por qué no se hace la impresión de uno en uno?
Saludos
-
Se trata de que el usuario ingrese el numero de la cedula, oprima un boton para consultar si se encuentra activo en la bdy si como tu dices exactamente se le muestran muchas filas de resultados y cada fila tiene un botón para imprimir el generado pdf
-
Hola, a ver si esto puede ser la idea:
Cuando muestras los resultados tienes muchas filas, en cada fila deberías incluir algo así como un botón o link que te permita imprimir:
<a href="personas.php?proceso=imprimir&id_personas=<?=$persona['id_personas']?>"><img src="images/ico_print.gif" border="0" /></a>
Este sería el código que te genera la url con los datos necesarios.
Luego en esa misma página tendrías que capturar si te vienen datos para procesarlos:
if($_GET['proceso'] == 'imprimir' && is_numeric($_GET['id_personas']))
{
$personas->imprimir($_GET['id_personas']);
}
No sé si te refieres a algo como esto
-
Sí, es exatamente a lo que hago referencia, pero la verdad no logro adaptarlo a mi codigo o no logro entenderlo... por este motivo te ruego revises mi codigo en esta linea:
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable()">'.'</td>';
, pues como veras es donde intento colocar el boton, te envio de igual manera la otra parte del codigo donde se extraen los datos de la bd...
<?
if(!isset($wtipo)){$wtipo=1;}
require("../../conexion/cnx/conectar.php");
//require("../../clases/ConsuVariasTablas/ConsuVariasTablas.php");
$cnx = new basedatos();
$cnx->conectar('localhost','root','','casajusticia');
require('../LibreriaFpdf/fpdf.php');
require('../LibreriaFpdf/lib_fecha_letras.php');
$gtotal=0;
global $header;
//extract($_GETS);
class PDF extends FPDF
{
// INICIO DE AUTOPRINT
var $javascript;
var $n_js;
function IncludeJS($script)
{
$this->javascript=$script;
}
function _putjavascript()
{
$this->_newobj();
$this->n_js=$this->n;
$this->_out('<<');
$this->_out('/Names [(EmbeddedJS) '.($this->n+1).' 0 R ]');
$this->_out('>>');
$this->_out('endobj');
$this->_newobj();
$this->_out('<<');
$this->_out('/S /JavaScript');
$this->_out('/JS '.$this->_textstring($this->javascript));
$this->_out('>>');
$this->_out('endobj');
}
function _putresources()
{
parent::_putresources();
if (!empty($this->javascript))
{
$this->_putjavascript();
}
}
function _putcatalog()
{
parent::_putcatalog();
if (isset($this->javascript))
{
$this->_out('/Names <</JavaScript '.($this->n_js).' 0 R>>');
}
}
function AutoPrint($dialog=false)
{
//Aqui lo que vamos a hacer es a arrancar la impresora inmediatamente se arranque el pdf
$param=($dialog ? 'true' : 'false');
$script="print($param);";
$this->IncludeJS($script);
}
function AutoPrintToPrinter($server, $printer, $dialog=false)
{
//esta es una funcion que usaremos cuando la impresora sea compartida en otra maquina.(se requiere Acrobat 6 osuperior.....)
$script = "var pp = getPrintParams();";
if($dialog)
$script .= "pp.interactive = pp.constants.interactionLevel.full;";
else
$script .= "pp.interactive = pp.constants.interactionLevel.automatic;";
$script .= "pp.printerName = '\\\\\\\\".$server."\\\\".$printer."';";
$script .= "print(pp);";
$this->IncludeJS($script);
}
// FIN DE AUTOPRINT
function Header()
{
//Logo
/* $this->Image('../../imagenes/LogoFinCasaJ.jpg',20,5,25);
$this->Image('../../imagenes/LogoAlcaldiafin.jpg',160,5,35);
//Arial bold 15
$this->SetFont('Arial','B',15);
// es de los bordes, fondo y texto
$this->SetDrawColor(0,0,0);
$this->SetFillColor(0,0,0);
$this->SetTextColor(0,0,0);
//$this->SetY(15);
//Movernos a la derecha
$this->Cell(191,5,"CASA DE JUSTICIA AGUABLANCA",0,'','C','B');
$this->Ln();
$this->SetFont('Arial','',12);
$this->Cell(191,5,"Programa Nacional de Casa de Justicia",0,'','C');
$this->Ln();
$this->Cell(191,5,"Secretaría de Gobierno, Convivencia y Seguridad",0,'','C');
$this->Ln();
$this->Cell(191,5,"Santiago de Cali",0,'','C');
$this->Ln();*/
}
//Pie de página
function Footer()
{
/* //Colores de los bordes, fondo y texto
$this->SetDrawColor(0,0,0);
$this->SetFillColor(0,0,0);
$this->SetTextColor(0,0,0);
//Posición: a 2,5 cm del final
$this->SetY(-10);
//Arial italic 8
$this->SetFont('Arial','',12);
$this->SetTextColor(0,0,0);
$this->Cell(20,10,'','','','C');
$this->Cell(160,5,'_________________________________________________________________',0,0,'C');
$this->Ln();
$this->Cell(200,5,'Calle 73A Diagonal 26P Esquina B/ José Manuel Marroquín I',0,0,'C');
$this->Ln();
$this->Cell(200,5,'Tel.: 422 9745 - 423 2505',0,0,'C');*/
//Número de página
//$this->Cell(0,10,'Pagina '.$this->PageNo().'/{nb}',0,0,'C');
}
function TablaBasica($header)
{
//Cabecera
foreach($header as $col)
$this->Cell(40,7,$col,1);
$this->Ln();
}
//------------------------ fin tabla
function ImprovedTable()
{
$bus=strtoupper($_GET['doc']);
$num_ficha=strtoupper($_GET['nfi']);
$p_test=strtoupper($_GET['doc01']);
$sql="select citacion.NumDocCitacion,citacion.IDBeneficiario,beneficiario.Apellido1,beneficiario.Apellido2,beneficiario.Nombre1,beneficiario.Nombre2
from citacion,beneficiario
where citacion.IDBeneficiario=beneficiario.IDBeneficiario AND NumDocCitacion='$bus'";
$res=mysql_query($sql);
mysql_query("SET NAMES,'utf8'");
while ($fila=mysql_fetch_array($res))
{
$var1=$fila['IDBeneficiario'];
$var2=$fila['Apellido1'];
$var3=$fila['Apellido2'];
$var4=$fila['Nombre1'];
$var5=$fila['Nombre2'];
}
$consulta_mysql="select citacion.NumDocCitacion,empleado.IdEmpleado,empleado.Apellido1,empleado.Apellido2,empleado.Nombre1,empleado.Nombre2,empleado.Genero
from citacion
inner join empleado on citacion.IdEmpleado=empleado.IdEmpleado where NumDocCitacion='$bus'";
$resultado_consulta_mysql=mysql_query($consulta_mysql);
mysql_query("SET NAMES,'utf8'");
while($fila=mysql_fetch_array($resultado_consulta_mysql))
{
$var59=$fila['Apellido1'];
$var60=$fila['Apellido2'];
$var61=$fila['Nombre1'];
$var62=$fila['Nombre2'];
$var68=$fila['Genero'];
}
/*$sql="select * from beneficiario where IDBeneficiario='$bus' ";
$res=mysql_query($sql);
mysql_query("SET NAMES,'utf8'");
while ($fila=mysql_fetch_array($res))
{
$var1=$fila['IDBeneficiario'];
$var2=$fila['Apellido1'];
$var3=$fila['Apellido2'];
$var4=$fila['Nombre1'];
$var5=$fila['Nombre2'];
}*/
$sql="select * from citacion where IDBeneficiario='$bus' or NumDocCitacion='$bus'";
$res=mysql_query($sql);
mysql_query("SET NAMES,'utf8'");
while ($fila=mysql_fetch_array($res))
{
$var51=$fila['FechaDocumento'];
$var52=$fila['Apellido1Citado'];
$var53=$fila['Apellido2Citado'];
$var54=$fila['Nombre1Citado'];
$var55=$fila['Nombre2Citado'];
$var56=$fila['TemaTratar'];
$var57=$fila['FechaCitacion'];
$var58=$fila['HoraCitacion'];
$var64=$fila['Telcitado'];
$var65=$fila['NumeroCitacion'];
$var66=$fila['NumDocCitacion'];
$var67=$fila['Conciliador'];
}
//// CITANTE /////
//-/-// TABLA ESTADO CIVIL //-/-//
/*$sql="select beneficiario.IDBeneficiario,estadocivil.DescEstadoCivil
from beneficiario
inner join estadocivil on beneficiario.CodEstadoCivil=estadocivil.CodEstadoCivil where IDBeneficiario='$bus'";
$res=mysql_query($sql);
mysql_query("SET NAMES,'utf8'");
while($fila=mysql_fetch_array($res))
{
$var102=$fila['DescEstadoCivil'];
}
//-/-// TABLA PROFESION/OFICIO //-/-//
$consulta_mysql="select beneficiario.IDBeneficiario,profesionoficio.DescProfesionOfic
from beneficiario
inner join profesionoficio on beneficiario.CodProfesionOfic=profesionoficio.CodProfesionOfic where IDBeneficiario='$bus'";
$resultado_consulta_mysql=mysql_query($consulta_mysql);
mysql_query("SET NAMES,'utf8'");
while($fila=mysql_fetch_array($resultado_consulta_mysql))
{
$var103=$fila['DescProfesionOfic'];
}
?>
, esto con el objetivo a que puedas ayudarme, pues como te comente al inicio no entiendo con facilidad la informacion que me brindaste, he intentado adaptarlo pero no me da... igual me encantaria conectarme via teamviewer para mostrarte y poder explicarte al maximo solo si tu me lo permites....
-
No conecto vía otro medio que no sean los foros...
Si no entiendo mal aquí estás generando las filas donde muestras para una identificación los resultados obtenidos (filas) que podrían ser dos, tres, cinco, diez filas dependiendo del caso:
while($fila=mysql_fetch_array($resultado_consulta_mysql1))
{
echo "<tr>";
echo'<td align="center">'.$fila['Nombre1Citado']...
Luego intentas meter el botón para imprimir en esta línea:
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable()">'.'</td>';
Y aquí llamas a una función JavaScript que utiliza los valores
documento=document.raiz.ident.value;
doc01=document.raiz.ident01.value;
Donde raiz.ident.value se supone que es la identificación
Y raiz.ident01.value se supone que es el campo NumeroCitacion asociado a una identificación y a una fila de la base de datos.
Ahora bien, si para cada resultado muestras los datos introduciendo esta línea:
echo '<td>'.'<input type="text" id="ident01" name="ident01" size="10"'.'value='.$fila['NumeroCitacion'].'>'.'</td>';
Puede haber muchas líneas que tengan el mismo id (que sería ident01).
Si muchas líneas tienen el mismo id, cuando en javascript trates de hacer esto: doc01=document.raiz.ident01.value;
no vas a obtener un resultado coherente.
¿Por qué? Porque un id tiene que ser único en la página, no puedes (o no debes) tener muchos elementos con el mismo id precisamente porque no vas a poder diferenciar unos de otros.
Seguramente hay varias vías para resolver esto. Una quizás sea pasarle como parámetro a la función javascript el valor de $fila['NumeroCitacion'] que es al fin y al cabo lo que tratas de rescatar luego.
Habría que crear la función de forma que reciba el parámetro y luego pasarle el parámetro, algo así como
echo'<td>'.'<font color=#000000><input type="button" value="Aceptar" onClick="ImprovedTable2('.$fila['NumeroCitacion'].')">'.'</td>';
Si te fijas aquí lo que estoy intentando es pasar como parámetro lo que me permite identificar a la fila concreta
En la función javascript tendríamos algo como:
function ImprovedTable2(numeroCitacion)
...
...
window.open('ReporCitacion.php?doc='+documento+'&doc01='+numeroCitacion, 'impresion', 'status=no, resizable=yes, width=1200, height=700');
Se trataría de construir una url única asociada a la fila concreta de que se trate...
Quizás te sea útil repasar algunas entregas de este curso javascript: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206
Saludos