PHP - Paso de Variables

 
Vista:

Paso de Variables

Publicado por jpclp (7 intervenciones) el 14/12/2005 15:37:33
Estoy desarrollando una aplicación para crear facturas.

La aplicación realiza lo siguiente:

En una página, se busca la empresa a la cual se quiere realizar la factura.
Este es el código:

<form action="facturar.php" method="post">
<table width="93%" border="0" cellspacing="0" align="center"><tr>
<td width="54%"><font size="2" face="Arial, Helvetica, sans-serif">Introduzca la empresa<font size="-3">*</font></font></td>
<td width="46%"><div align="left"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="empresa" type="text" id="empresa" value="" size="30" class="texto"></font></div></td></tr><tr>
<td colspan="2"><font size="-3">*Si desea ver todos las empresas,
deje vacía la caja de texto y pulse buscar cliente</font></td></tr>
<tr> <td colspan="2"><div align="center">
<input type="submit" name="Submit" value="Buscar Cliente">
</div></td></tr></table>
</form>

Y este es el código del fichero que muestra esos datos (facturar.php)

<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$busca = "SELECT * FROM empresas WHERE empresa LIKE '%$empresa%'";
$contarok= mysql_query($busca,$con);
while ($registro = mysql_fetch_array ($contarok)) {
$id = $registro ["id"];
echo "<table width = 80% border =2>";
echo "<tr><td>";
echo "<font size ='2' face ='Arial, Helvetica, sans-serif'>";
echo $registro['empresa']."<td width = 20%><font size='2' face='Arial, Helvetica, sans-serif'>";
echo $registro['localidad']."<td width = 20%><font size='2' face='Arial, Helvetica, sans-serif'>";
echo $registro['provincia']."<td width = 20%><font size='2' face='Arial, Helvetica, sans-serif'>";
echo "<td width= 20%><font size='2' face='Arial, Helvetica, sans-serif'>"."<a href=facturar2.php?id=$id>"."<strong>Crear Factura</strong>";
echo "</table>";
}
?>

Hasta aquí todo bien.

A continuación, según se pincha en un cliente para realiza la factura, se muestra este otro formulario en el que se introducen los datos del cliente completos, así como los datos de productos a facturar. Este es su código (facturar2.php):

<form name="form1" method="post" action="facturar3.php"><p>
<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$insertar = "SELECT * FROM empresas WHERE id = '$id'";
$contarok= mysql_query($insertar,$con);
while ($registro = mysql_fetch_array ($contarok)) {
echo "<font size ='2' face ='Arial, Helvetica, sans-serif'>";
echo "<strong>VA A CREAR UNA FACTURA PARA LA SIGUIENTE EMPRESA</strong><br><br>";
echo "<font size ='2' face ='Arial, Helvetica, sans-serif'>";
echo "<strong>EMPRESA: </strong>";
echo $registro['empresa']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>SOCIEDAD: </strong>";
echo $registro['sociedad']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>PERSONA DE CONTACTO: </strong>";
echo $registro['contacto']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>CIF: </strong>";
echo $registro['cif']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>NUMEROS DE TELEFONO: </strong>";
echo $registro['telefono']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " y ";
echo $registro['telefono2']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>NUMERO DE FAX: </strong>";
echo $registro['fax']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>DIRECCION: </strong>";
echo $registro['direccion']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>CODIGO POSTAL: </strong>";
echo $registro['postal']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>LOCALIDAD Y PROVINCIA: </strong>";
echo $registro['localidad']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo "( ";
echo $registro['provincia']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " )";
echo "<br>";
echo "<strong>E-MAIL Y PAGINA WEB: </strong>";
echo $registro['email']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " y ";
echo $registro['web']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
}
?>
<table width="80%" border="0" cellspacing="0"><tr>
<td><font size="2" face="Arial, Helvetica, sans-serif">DESCRIPCION</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">UDS</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO</font></td>
</tr><tr> <td width="23%" height="26"><font size="2" face="Arial, Helvetica, sans-serif">PRODUCTOS</font></td>
<td width="32%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="productos" type="text" size="10""></font></td>
<td width="45%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="precio1" type="text" id="precio1" size="10">
€ </font></td></tr>
<input type="submit" name="Submit" value="Enviar datos">

Hasta aquí igualmente todo bien, se muestra el formulario para insertar los productos y en la parte superior los datos del cliente seleccionado. Pero el problema viene a continuación, cuando pulso en el botón enviar. Quiero que al pulsar el botón enviar y me lleve al fichero facturar3.php, se muestre la factura por completo, con los datos del cliente y los productos que inserto. Pero no aparecen, aparecen los datos de los productos, pero los datos del cliente desaparecen.

Este es el código del fichero facturar3.php:

<?
$servidor="localhost";
$usuario="root";
$password="";
$base="clientes";
$con=mysql_connect($servidor,$usuario,$password);
mysql_select_db($base,$con);
$insertar = "SELECT * FROM empresas WHERE id = '$id'";
$contarok= mysql_query($insertar,$con);
while ($registro = mysql_fetch_array ($contarok)) {
echo "<font size ='2' face ='Arial, Helvetica, sans-serif'>";
echo "<strong>VA A CREAR UNA FACTURA PARA LA SIGUIENTE EMPRESA</strong><br><br>";
echo "<font size ='2' face ='Arial, Helvetica, sans-serif'>";
echo "<strong>EMPRESA: </strong>";
echo $registro['empresa']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>SOCIEDAD: </strong>";
echo $registro['sociedad']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>PERSONA DE CONTACTO: </strong>";
echo $registro['contacto']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>CIF: </strong>";
echo $registro['cif']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>NUMEROS DE TELEFONO: </strong>";
echo $registro['telefono']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " y ";
echo $registro['telefono2']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>NUMERO DE FAX: </strong>";
echo $registro['fax']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>DIRECCION: </strong>";
echo $registro['direccion']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>CODIGO POSTAL: </strong>";
echo $registro['postal']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
echo "<strong>LOCALIDAD Y PROVINCIA: </strong>";
echo $registro['localidad']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo "( ";
echo $registro['provincia']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " )";
echo "<br>";
echo "<strong>E-MAIL Y PAGINA WEB: </strong>";
echo $registro['email']."<font size='2' face='Arial, Helvetica, sans-serif'>";
echo " y ";
echo $registro['web']."<font size='2' face='Arial, Helvetica, sans-serif'><br>";
}
?>
<font size="2" face="Arial, Helvetica, sans-serif">
<p> Estos son los datos correspondientes a la factura: </p>
<form name="form1" method="post" action="facturar4.php">
<table width="80%" border="0" cellspacing="0"><tr>
<td><font size="2" face="Arial, Helvetica, sans-serif">DESCRIPCION</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">UDS</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">PRECIO TOTAL</font></td></tr>
<tr> <td width="21%" height="26"><font size="2" face="Arial, Helvetica, sans-serif">PRODUCTOS</font></td>
<td width="21%"><p><font size="2" face="Arial, Helvetica, sans-serif">
<?
echo $productos;
echo " ";
?>
</p></td>
?>
<td width="16%"><font size="2" face="Arial, Helvetica, sans-serif">
<?
echo $precio1;
echo " ";
?>
€</font></td>
<td width="16%"><font size="2" face="Arial, Helvetica, sans-serif">
<?
$total1= $productos * $precio1;
echo $total1;
echo " ";
?>

Lo último lo realiza bien, es decir muestra los productos, precios y totales, pero pierdo los datos del cliente, he probado a sacarlo del formulario (en el fichero facturar2.php), etc, pero no consigo mostrarlo, se pierden esos datos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Paso de Variables

Publicado por FiSiCo (403 intervenciones) el 14/12/2005 17:43:22
creo que en facturar2.php te falta agragar un campo oculto con el id del cliente para que en facturar3.php lo puedas consultar y lo mismo para facturar3.php para tenerlo en facturar4.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Paso de Variables

Publicado por jpclp (7 intervenciones) el 14/12/2005 21:01:03
Hola FiSiCo, he probado esta opción, pero sin éxito, creo que por que me lío con el HTML y el PHP, me podrías indicar como sería el código.

Yo he probado con esto y me da error:

<?
echo "<input name='' type='hidden' value='$id'>";
?>

¿Qué puede estar mal?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Paso de Variables

Publicado por FiSiCo (403 intervenciones) el 19/12/2005 17:57:26
a esto me refiero

<input name="id" type="hidden" value="<? echo $HTTP_POST_VARS["id"]; ?>">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar