Foros del Web » Programando para Internet » PHP »

Crear una tablas con filas y columnas de forma dinamica tomando datos de 2 variables

Estas en el tema de Crear una tablas con filas y columnas de forma dinamica tomando datos de 2 variables en el foro de PHP en Foros del Web. Buenas a todos.Tengo un problemilla.Quisiera poder crear una tabla con 2 columnas,cuyos datos son tomados por 2 variables,pero que se puedan imprimir uno debajo de ...
  #1 (permalink)  
Antiguo 16/07/2011, 08:03
 
Fecha de Ingreso: julio-2011
Mensajes: 11
Antigüedad: 12 años, 9 meses
Puntos: 0
Crear una tablas con filas y columnas de forma dinamica tomando datos de 2 variables

Buenas a todos.Tengo un problemilla.Quisiera poder crear una tabla con 2 columnas,cuyos datos son tomados por 2 variables,pero que se puedan imprimir uno debajo de otro cada uno en su columnas.Tengo lo siguiente:

foreach($_POST['NOMPROD'] as $_p)
{if($_p!=""){
$_NOMPROD .= " ".$_p."\n";}}

foreach($_POST["CANTPROD"] as $_c)
{if($_c!=""){
$_CANTPROD .= " ".$_c."\n";}}
$_producto.= $_NOMPROD."\n";
$_cantidad.= $_CANTPROD."\n";

De aca se toman los datos y se guardan en en las variables.
Y con esto:

$body .= '
</table>
<p>&nbsp;</p>
<table width="398" height="109" border="1">
<tr>
<td height="23" colspan="2" align="center">Pedido</td>
</tr>
<tr>
<td height="21" align="center">Producto</td>
<td align="center">Cantidad</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p>&nbsp;</p>
';
$mail->Body = $body;


Me pones los datos,pero uno al lado de otro.Seguro que es una pavada el problema,pero todavia no le encuentro la vuelta.Y aparte lo que quiero es que me lo cree de forma dinamica para x cantidad de filas.Espero alguien me pueda ayudar.Graciassss!!!!
  #2 (permalink)  
Antiguo 16/07/2011, 08:19
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Crear una tablas con filas y columnas de forma dinamica tomando datos de 2

Creo que está mal planteado el asunto, debería ser algo asi;


Código PHP:
Ver original
  1. </table>
  2. <p>&nbsp;</p>
  3. <table width="398" height="109" border="1">
  4. <tr>
  5. <td height="23" colspan="2" align="center">Pedido</td>
  6. </tr>
  7. <tr>
  8. <td height="21" align="center">Producto</td>
  9. <td align="center">Cantidad</td>
  10. </tr>
  11.  
  12. <?php for($i=0;$i<count($_POST["CANTPROD"]);$i++){?>
  13. <tr>
  14. <td><?php echo  $_POST['NOMPROD'][$i];?></td>
  15. <td><?php echo  $_POST["CANTPROD"][$i];?></td>
  16. </tr>
  17. <?php }?>
  18.  
  19. </table>
  20. <p>&nbsp;</p>
__________________
la la la
  #3 (permalink)  
Antiguo 16/07/2011, 09:56
 
Fecha de Ingreso: julio-2011
Mensajes: 11
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Crear una tablas con filas y columnas de forma dinamica tomando datos de 2

ok.Lo pruebo como me decis y te aviso como fue.Graciaaaaaaas!!!
  #4 (permalink)  
Antiguo 16/07/2011, 12:56
 
Fecha de Ingreso: julio-2011
Mensajes: 11
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Crear una tablas con filas y columnas de forma dinamica tomando datos de 2

Hola,sabes que me crea la tabla pero no me imprime los valores.Te comento,los datos que se cargan son tomados de un formulario de pedidos y enviados a un mail mediante phpmailer.Ahora te muestro el codigo completo para que lo veas y me digas que puede estar pasando.

<?php
require "class.phpmailer.php";
require 'class.smtp.php';
$mail = new phpmailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = '[email protected]';
$mail->Password = 'w37an1a';
$_nombre .= $_POST["nombre"];
$_empresa .= $_POST["empresas"];
$_ciudad .= $_POST["Ciudad"];
$_pais .= $_POST["Pais"];
$_nombre .= $_POST["nombre"];
$_telefono .= $_POST["Telefono"];
$_mail .= $_POST["email"];
$_comentario .= $_POST["Comentarios2"];
$mail->FromName = $_empresa;
$mail->From = $_mail;
//foreach($_POST['NOMPROD'] as $_p)
// {if($_p!=""){
// $_NOMPROD .= " ".$_p."\n";}}

//foreach($_POST["CANTPROD"] as $_c)
// {if($_c!=""){
// $_CANTPROD .= " ".$_c."\n";}}
//$_producto.= $_NOMPROD;
//$_cantidad.= $_CANTPROD."\n";
$mail->AddAddress('[email protected]');
$mail->Subject = 'Formulario de Pedido';
$mail->IsHTML(true);
$body .='<table width="399" border="0">
<tr>
<td width="135">Empresa:</td>
<td width="254">'.$_empresa.'</td>
</tr>
<tr>
<td>Ciudad:</td>
<td>'.$_ciudad.'</td>
</tr>
<tr>
<td>Pais:</td>
<td>'.$_pais.'</td>
</tr>
<tr>
<td>Nombre y Apellido:</td>
<td>'.$_nombre.'</td>
</tr>
<tr>
<td>Telefono:</td>
<td>'.$_telefono.'</td>
</tr>
<tr>
<td>E-mail:</td>
<td>'.$_mail.'</td>
</tr>
<tr>
<td>Comentario</td>
<td>'.$_comentario.'</td>
</tr>
</table>
<p>&nbsp;</p>
</p>
</table>
<p>&nbsp;</p>
<table width="398" height="109" border="1">
<tr>
<td height="23" colspan="2" align="center">Pedido</td>
</tr>
<tr>
<td height="21" align="center">Producto</td>
<td align="center">Cantidad</td>
</tr>

<?php for($i=0;$i<count($_POST["CANTPROD"]);$i++){?>
<tr>
<td><?php echo $_POST["NOMPROD"][$i];?></td>
<td><?php echo $_POST["CANTPROD"][$i];?></td>
</tr>
<?php }?>

</table>
<p>&nbsp;</p>';
$mail->Body= $body;

if(!$mail->Send()) {//finalmente enviamos el email
echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
echo 'Correo enviado correctamente';
}
?>
Espero puedas darme otra manito,je...graciasss!!!
  #5 (permalink)  
Antiguo 16/07/2011, 12:58
 
Fecha de Ingreso: julio-2011
Mensajes: 11
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Crear una tablas con filas y columnas de forma dinamica tomando datos de 2

Hola,sabes que me crea la tabla pero no me imprime los valores.Te comento,los datos que se cargan son tomados de un formulario de pedidos y enviados a un mail mediante phpmailer.Ahora te muestro el codigo completo para que lo veas y me digas que puede estar pasando.

<?php
require "class.phpmailer.php";
require 'class.smtp.php';
$mail = new phpmailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = '[email protected]';
$mail->Password = 'w37an1a';
$_nombre .= $_POST["nombre"];
$_empresa .= $_POST["empresas"];
$_ciudad .= $_POST["Ciudad"];
$_pais .= $_POST["Pais"];
$_nombre .= $_POST["nombre"];
$_telefono .= $_POST["Telefono"];
$_mail .= $_POST["email"];
$_comentario .= $_POST["Comentarios2"];
$mail->FromName = $_empresa;
$mail->From = $_mail;
//foreach($_POST['NOMPROD'] as $_p)
// {if($_p!=""){
// $_NOMPROD .= " ".$_p."\n";}}

//foreach($_POST["CANTPROD"] as $_c)
// {if($_c!=""){
// $_CANTPROD .= " ".$_c."\n";}}
//$_producto.= $_NOMPROD;
//$_cantidad.= $_CANTPROD."\n";
$mail->AddAddress('[email protected]');
$mail->Subject = 'Formulario de Pedido';
$mail->IsHTML(true);
$body .='<table width="399" border="0">
<tr>
<td width="135">Empresa:</td>
<td width="254">'.$_empresa.'</td>
</tr>
<tr>
<td>Ciudad:</td>
<td>'.$_ciudad.'</td>
</tr>
<tr>
<td>Pais:</td>
<td>'.$_pais.'</td>
</tr>
<tr>
<td>Nombre y Apellido:</td>
<td>'.$_nombre.'</td>
</tr>
<tr>
<td>Telefono:</td>
<td>'.$_telefono.'</td>
</tr>
<tr>
<td>E-mail:</td>
<td>'.$_mail.'</td>
</tr>
<tr>
<td>Comentario</td>
<td>'.$_comentario.'</td>
</tr>
</table>
<p>&nbsp;</p>
</p>
</table>
<p>&nbsp;</p>
<table width="398" height="109" border="1">
<tr>
<td height="23" colspan="2" align="center">Pedido</td>
</tr>
<tr>
<td height="21" align="center">Producto</td>
<td align="center">Cantidad</td>
</tr>

<?php for($i=0;$i<count($_POST["CANTPROD"]);$i++){?>
<tr>
<td><?php echo $_POST["NOMPROD"][$i];?></td>
<td><?php echo $_POST["CANTPROD"][$i];?></td>
</tr>
<?php }?>

</table>
<p>&nbsp;</p>';
$mail->Body= $body;

if(!$mail->Send()) {//finalmente enviamos el email
echo $mail->ErrorInfo;//si no se envía correctamente se muestra el error que ocurrió
} else {
echo 'Correo enviado correctamente';
}
?>
Espero puedas darme otra manito,je...graciasss!!!

Etiquetas: columnas, filas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.