Foros del Web » Programando para Internet » PHP »

Problema con el paso de variables

Estas en el tema de Problema con el paso de variables en el foro de PHP en Foros del Web. Hola, tengo un pequeño problemita con el paso de variables de un formulario a un pdf creado desde php con la clase R&OS. La cosa ...
  #1 (permalink)  
Antiguo 31/05/2006, 12:39
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
Pregunta Problema con el paso de variables

Hola, tengo un pequeño problemita con el paso de variables de un formulario a un pdf creado desde php con la clase R&OS.

La cosa es que no sé realmente como mandar los datos al pdf, xq manejo selects dependientes en la pagina y si pongo
Código PHP:
<form name="form1" method="POST" action="pruebapdf.php"
Cada vez que cambie algun select, se hace un refresh de la pag y me va a hacer la inserción a la base de datos y mandar solo algunos datos correctos al pdf, los demas campos los mandaria vacios.

Intente con el header, pero creo que ni al caso xq no me hace nada.

Alguna idea???

Si no me explique muy claramente hazmelo saber

Grax
__________________
:ojotes: A n I t A :ojotes:
  #2 (permalink)  
Antiguo 31/05/2006, 13:42
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
Estaria bueno que postees todo el contenido del archivo que tiene el formulario.
Me suena a DreamWeaver ya que este tiene un select menu para insertar. Fijate desde el codigo que no tenga javascript.
__________________
-- May The Force Be With You --
  #3 (permalink)  
Antiguo 31/05/2006, 14:03
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
Código PHP:
<?php require_once('../Connections/PAGINA.php'); 
session_start();
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}
mysql_select_db($database_PAGINA$PAGINA);
$query_disciplina "SELECT * FROM clases ORDER BY Nombre ASC";
$disciplina mysql_query($query_disciplina$PAGINA) or die(mysql_error());
$row_disciplina mysql_fetch_assoc($disciplina);
$totalRows_disciplina mysql_num_rows($disciplina);

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 
$sesion_name=$_SESSION["MM_Username"];

  
$ide"SELECT numid FROM users WHERE user='$sesion_name'";
  
$result=mysql_query($ide,$PAGINA); 
  
$datos_user=mysql_fetch_array($result);
  
  
$id=$datos_user["numid"];
  
  
$datos"SELECT NOMBRE, APELLIDOP, APELLIDOM FROM datos WHERE NOSOCIO='$id'";
  
$result=mysql_query($datos,$PAGINA); 
  
$data_user=mysql_fetch_array($result);
  
  
$name=$data_user["NOMBRE"].' '.$data_user["APELLIDOP"].' '.$data_user["APELLIDOM"];
  
  
$nom_alum=$_POST['nombre'];
  
$apellido=$_POST['apellido'];
  
$discip=$_POST['disciplina'];
  
$categ=$_POST['categoria'];
  
$horario=$_POST['hora'];
  
$periodo=$_POST['periodo'];
  
        if (!empty(
$_POST['inscribir'])) // Si se dio click en inscribir se hace la inserción a la bd
         
{
              
$curso"SELECT Nombre FROM clases WHERE CveClase='$discip'";
              
$result=mysql_query($curso,$PAGINA); 
              
$curso=mysql_fetch_array($result);
              
$disciplina=$curso["Nombre"];
            
              
$curso"SELECT Nombre FROM subcategorias WHERE CveSub='$categ'";
              
$result=mysql_query($curso,$PAGINA); 
              
$curso=mysql_fetch_array($result);
              
$categoria=$curso["Nombre"];
              
              
$hr"SELECT * FROM horarios WHERE CveHr='$horario'";
              
$result=mysql_query($hr,$PAGINA); 
              
$hr=mysql_fetch_array($result);
              
$hr['Hora']= substr($hr['Hora'], 0,-3);
              
$horario=$hr["Hora"]." ".$hr["Dia"];
    
                      
$insertar"INSERT INTO inscripciones (NoSocio, Inscribio, Nombre, Apellido, Disciplina, Categoria, Horario, Periodo) values ('$id','$name','$nom_alum','$apellido','$disciplina','$categoria','$horario','$periodo')";
                    
                      
mysql_select_db($database_PAGINA$PAGINA);
                      
$Result1 mysql_query($insertar$PAGINA) or die(mysql_error());

                  }
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Estilo1 {
    font-size: 10px;
    font-family: Georgia, "Times New Roman", Times, serif;
}
.Estilo2 {
    font-family: Geneva, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 14px;
    color: #009933;
    text-transform: uppercase;
}
a:link {
    color: #0000CC;
    text-decoration: none;
}
a:visited {
    color: #0066FF;
    text-decoration: none;
}
a:hover {
    text-decoration: underline;
}
a:active {
    text-decoration: none;
}
.Estilo3 {font-family: Geneva, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 18px; color: #009933; text-transform: uppercase; }
.Estilo5 {color: #009933}
-->
</style>
</head>

<body>
<div align="right">
<table width="200" border="0">
  <tr>
    <td><div align="center" class="Estilo2">
      <?php  
     
      
if(!isset($_SESSION["MM_Username"]) ) //Si no existe la sesion lo mandamos al login
             
Header("Location: http://www.clubtresmarias.com.mx");
      echo 
$_SESSION["MM_Username"];
        
?>
    </div></td>
  </tr>
  <tr>
    <td><div align="center"><a href="../logout.php" onMouseOut="window.status='Tres Marias Residential Golf Club ©'"  onMouseOver="window.status='Tres Marias Residential Golf Club ©';return true"class="Estilo1">
      
    </a><a href="../logout.php" class="Estilo1">Cerrar Sesi&oacute;n Socio </a></div></td>
  </tr>
</table>
</div>
<p align="center" class="Estilo3">inscripciones</p>
__________________
:ojotes: A n I t A :ojotes:
  #4 (permalink)  
Antiguo 31/05/2006, 14:04
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
CONTINUACION...

Código PHP:
<form name="form1" method="POST" action="testpdf.php"> 


  <table width="414" border="0" align="center">
    <tr>
      <td width="131" height="31"><span class="Estilo3">nombre</span></td>
      <td width="273"><span class="Estilo3"><span class="Estilo5">
      <?php
      
if(isset($_POST['nombre'])) 
        echo 
"<input name='nombre' type='text' id='nombre' size='40' maxlength='40' value=".$_POST['nombre'].">";
      else
        echo 
"<input name='nombre' type='text' id='nombre' size='40' maxlength='40' >"
    
?>
      </span></span></td>
    </tr>
    <tr>
      <td height="32"><span class="Estilo3"><span class="Estilo5">apellido</span></span></td>
      <td width="273"><?php
      
if(isset($_POST['apellido'])) 
        echo 
"<input name='apellido' type='text' id='apellido' size='40' maxlength='40' value=".$_POST['apellido'].">";
      else
        echo 
"<input name='apellido' type='text' id='apellido' size='40' maxlength='40' >"
    
?>     </td>
    </tr>
    <tr>
      <td height="31"><span class="Estilo3">disciplina</span></td>
      <td><span class="Estilo5">
        <select name="disciplina" size="1" id="disciplina" onChange="this.form.submit()">
             <option value="0" selected="selected" >Seleccione una Disciplina</option>
              <?php
              $clave
=$_POST['disciplina'];
            
            do {  
                            
                if(
$clave==$row_disciplina['CveClase']){ 
                  echo 
"<option value=\"".$row_disciplina['CveClase']."\" selected>".$row_disciplina['Nombre']."</option>\n";
                }
               else{ 
                 echo 
"<option value=\"".$row_disciplina['CveClase']."\" >"$row_disciplina['Nombre']."</option>\n";
                }
            } while (
$row_disciplina mysql_fetch_assoc($disciplina));
                  
$rows mysql_num_rows($disciplina);
                  if(
$rows 0) {
                      
mysql_data_seek($disciplina0);
                      
$row_disciplina mysql_fetch_assoc($disciplina);
               }
        
           
mysql_free_result($disciplina);
          
?>
        </select>
      </span></td>
    </tr>
    <tr>
      <td height="29" class="Estilo3">Categoria</td>
      <td><p><font color="#0066CC">
          <select name="categoria" size="1" id="categoria" onChange="this.form.submit()"  >
           
      <?php    
      
      
if (!empty($clave)){
            
mysql_select_db($database_PAGINA$PAGINA);
            
$query_categoria "SELECT * FROM subcategorias WHERE CveClase='$clave' ORDER BY Nombre ASC";
            
$categoria mysql_query($query_categoria$PAGINA) or die(mysql_error());
            
$row_categoria mysql_fetch_assoc($categoria);
            
$totalRows_categoria mysql_num_rows($categoria);
            
            echo 
"<option value=\"\"> Seleccione una Categoria </option>";
                
$clave2=$_POST['categoria'];
                
            do {  
            
                if(
$clave2==$row_categoria['CveSub']){ 
                  echo 
"<option value=\"".$row_categoria['CveSub']."\" selected>".$row_categoria['Nombre']."</option>\n";
                }
               else{ 
                 echo 
"<option value=\"".$row_categoria['CveSub']."\" >"$row_categoria['Nombre']."</option>\n";
                }

            } while (
$row_categoria mysql_fetch_assoc($categoria));
            
         }
     else{ 
                 echo 
"<option value=\"\"> Seleccione una Categoria </option>";
         }
        
              
$rows mysql_num_rows($categoria);
              if(
$rows 0) {
                  
mysql_data_seek($categoria0);
                  
$row_categoria mysql_fetch_assoc($categoria);
              }
              
              
mysql_free_result($categoria);
            
?>
          </select>
        </font></p>
      </td>
    </tr>
    <tr>
      <td height="30" class="Estilo3">HORARIO</td>
      <td><font color="#0066CC">
        <select name="hora" size="1" id="hora" onChange="this.form.submit()" >
          >
          <?php
        
        
if (!empty($clave2)){    
            
mysql_select_db($database_PAGINA$PAGINA);
            
$query_horario "SELECT * FROM horarios WHERE CveSub='$clave2' ORDER BY Hora ASC";
            
$horario mysql_query($query_horario$PAGINA) or die(mysql_error());
            
$row_horario mysql_fetch_assoc($horario);
            
$totalRows_horario mysql_num_rows($horario);
            
            echo 
"<option value=\"\"> Seleccione un Horario </option>";
            
$clave3=$_POST['hora'];
            do {  
                
                
$row_horario['Hora']= substr($row_horario['Hora'], 0,-3);


                if(
$clave3==$row_horario['CveHr']){ 
                  echo 
"<option value=\"".$row_horario['CveHr']."\" selected>".$row_horario['Hora']." ".$row_horario['Dia']."</option>\n";
                }
                else{ 
                 echo 
"<option value=\"".$row_horario['CveHr']."\" >"$row_horario['Hora']." ".$row_horario['Dia']."</option>\n";
                    }
          
                } while (
$row_horario mysql_fetch_assoc($horario));
        }
        else{ 
                 echo 
"<option value=\"\"> Seleccione un Horario </option>";
             }
                
                  
$rows mysql_num_rows($horario);
                  if(
$rows 0) {
                      
mysql_data_seek($horario0);
                      
$row_horario mysql_fetch_assoc($horario);
                  }
  
                 
mysql_free_result($horario);
             
            
?>
        </select>
      </font></td>
    </tr>
    <tr>
      <td height="42" class="Estilo3">PERIODO</td>
      <td><span class="Estilo3"><span class="Estilo5">
        <select name="periodo" size="1" id="periodo" >
          <option value="Mayo-Julio" selected>Mayo - Julio</option>
        </select>
      </span></span></td> 
    </tr>
  </table> 
  
  <div align="center">
    <p class="Estilo3">
      <input name="inscribir" type="submit" id="inscribir" value="Inscribir">
    </p>
  </div>
  <input type="hidden" name="MM_insert" value="form1">
  <input name="user" type="hidden" id="user" value="<?php echo $name?>" >
  <span class="Estilo3">
  <input name="nsocio" type="hidden" id="nsocio" value="<?php echo $id?>">
  </span>
  <input name="nomb" type="hidden" id="nomb" value="<?php echo $nom_alum?>">
  <input name="apell" type="hidden" id="apell" value="<?php echo $apellido?>">
  <input name="clase" type="hidden" id="clase" value="<?php echo $disciplina?>">
  <input name="subclase" type="hidden" id="subclase" value="<?php echo $categoria?>">
  <input name="hrario" type="hidden" id="hrario" value="<?php echo $horario?>">
  <input name="period" type="hidden" id="period" value="<?php echo $periodo?>">
</form>

<p align="left" class="Estilo3"> <a href="../inicio_socio.php" onMouseOut="window.status='Tres Marias Residential Golf Club &copy;'"  onMouseOver="window.status='Tres Marias Residential Golf Club &copy;';return true" class="Estilo2">Regresar</a></p>
</body>
</html>
__________________
:ojotes: A n I t A :ojotes:
  #5 (permalink)  
Antiguo 31/05/2006, 14:06
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
FINALMENTE EL ARCHIVO PARA CREAR EL PDF

Código PHP:
<?php
require_once('../Connections/PAGINA.php'); 

error_reporting(E_ALL);
include(
'../class.ezpdf.php');

$pdf =& new Cezpdf($paper='LETTER');
$pdf->selectFont('../fonts/Times-Roman.afm');
$pdf->setEncryption("","",array('print'));
$pdf->addJpegFromFile("../imagenes/logo.jpg",30,650,100,80);
$pdf->ezText("\n\n".'<b>DEPORTES</b>',23,array('justification'=>'center'));
$pdf->ezText("\n\n\n\n\n".'<b>Comprobante Inscripción por Internet</b>',12,array('justification'=>'center'));  

  
//Esta parte esta comentada xq es la que me causa error, me dice:"El archivo no empieza por '%PDF-' "

  /*$nombre=$_POST['user'];
  $id=$_POST['nsocio'];
  $nom_alum=$_POST['nomb'];
  $apellido=$_POST['apell'];
  $discip=$_POST['clase'];
  $categ=$_POST['subclase'];
  $horario=$_POST['hrario'];
  $periodo=$_POST['period'];/**/


$alumno=$nomb." ".$apell;

$pdf->rectangle(20,598,550,20);
$pdf->addText(90,550,11,"Nombre : ");
$pdf->addText(160,550,11,$alumno);
$pdf->addText(90,520,11,"Disciplina: ");
$pdf->addText(160,520,11,$clase);
$pdf->addText(90,490,11,"Categoria: ");
$pdf->addText(160,490,11,$subclase);
$pdf->addText(90,460,11,"Horario : ");
$pdf->addText(160,460,11,$hrario);
$pdf->addText(90,430,11,"Periodo : ");
$pdf->addText(160,430,11,$period);


if (isset(
$d) && $d){
$pdfcode $pdf->output(1);
$pdfcode str_replace("\n","\n<br>",htmlspecialchars($pdfcode));
echo 
'<html><body>';
echo 
trim($pdfcode);
echo 
'</body></html>';
} else {
$pdf->stream();
}
?>
__________________
:ojotes: A n I t A :ojotes:
  #6 (permalink)  
Antiguo 31/05/2006, 15:33
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
On change

Fijate de sacar esto...
onChange="this.form.submit()"
__________________
-- May The Force Be With You --
  #7 (permalink)  
Antiguo 31/05/2006, 15:39
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
No creo, eso es parte de hacer que los selects sean dependientes, no tiene nada que ver
__________________
:ojotes: A n I t A :ojotes:
  #8 (permalink)  
Antiguo 31/05/2006, 16:45
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
Mira, lo que hace el this.form.submit() es submitir el formulario, si lo que queres hacer es eso, sacas ese script de onchange="" y listo, por otra parte si es lo que querias que pase (entendi que ese era tu problema), tratá de englobar las funciones del pdf y de la insersion de datos a la base con if y podes validar con la funcion empty("$var_name");

Por otra parte, El problema que vos planteas es que se te "Actualiza o hace un refresh" la pagina, (fijate de pegarle una leida a tu post original) y se soluciona sacando el formsubmit.

Te recomiendo que pases por acá, ya que podes probar todo lo que tenga que ver con javascript.

http://www.w3schools.com/js/tryit.as...om_form_submit


Un saludo
__________________
-- May The Force Be With You --
  #9 (permalink)  
Antiguo 31/05/2006, 16:45
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
post deleted
__________________
-- May The Force Be With You --
  #10 (permalink)  
Antiguo 31/05/2006, 17:32
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
Creo que no entendiste bien cual era mi problema =S

Lo que pasa es que el hecho de usar selects dependientes me esta dificultando un pokillo el hacer el paso de variables de una manera digamos "normal" como regularmente se hace, a la pagina que requiero.

El valor de estas variables las necesito para crear un pdf que contenga los datos, en este caso, de la persona que se inscribio a un curso, por eso requiero pasarlas a otra pagina.

No sé si quede mas claro, xq la verdad no entendi mucho de lo que pusiste en tu respuesta eso de engoblar las funciones del pdf, como que no va por ahi

Gracias
__________________
:ojotes: A n I t A :ojotes:
  #11 (permalink)  
Antiguo 31/05/2006, 18:36
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
Fijate de darle un repaso de la siguiente manera, tal vez no es la mas prolija pero si la mas facil.

1. Anotate los nombres de las variables que queres que si o si figuren.
2. Fijate que al submitir el form se guarden en sessiones
3. En una pagina intermedia valida si estan todos los campos y de lo contrario que vuelva a la pagina del form.

De esta manera podes imprimir otra vez los campos que estaban completos, validarlos en el medio y por ultimo guardarlos en la DB y hacer el pdf.

Otra cosa que podes hacer es validar si estan todos los datos y guardarlos en una db (en la misma pagina del form) y cuando esten los datos en la DB los sacas de ahi para hacer el pdf o en el mismo bloque de codigo donde tenes los query de la db para guardar los datos los pones en sessiones y redireccionas a otra pagina donde imprimis el pdf header("location: pdfscript.php");


espero aclarar las cosas. Un saludo.
__________________
-- May The Force Be With You --
  #12 (permalink)  
Antiguo 01/06/2006, 14:33
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 12 años, 3 meses
Puntos: 0
Listo! Use, como dijiste, variables de sesion para pasar los datos de una pagina a otra y el header.

Mapper, muchisimas gracias por tu tiempo, tu ayuda, pero sobre todo por tu paciencia.

Saluditos
__________________
:ojotes: A n I t A :ojotes:
  #13 (permalink)  
Antiguo 01/06/2006, 16:35
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
Denada, para eso esta el foro
__________________
-- May The Force Be With You --
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 15:22.