Paso de Variables en PHP por URL

29 views
Skip to first unread message

hgosi...@gmail.com

unread,
Jun 25, 2018, 2:59:30 PM6/25/18
to LinuxCabal
Buenas tardes cabaleros,  soy nuevo programando en php y tengo una duda...estoy intentando pasar una variable por URL , pero la variable es tipo "date" , no me marca error en la compilación, el problema es que no pasa ningún dato, al momento de seleccionar la fecha que deseo pasar por URL, la variable pasa vacía.. este es parte del código

ESTA ES LA PAGINA DONDE ENVIÓ LA VARIABLE

*** este  input esta dentro de un "" FORM con metodo POST ***
<td><label>Inicial</label></td> 
<td> <input type="date" name="fecha_inicial" id="fecha_inicial" size="20">
_____________________________________________________________


*** aqui recibo la variable **

$f_inicial = "-1";
if (isset($_POST["fecha_inicial"])) {
  $f_inicial = $_POST["fecha_inicial"];
  
}
_____________________________________________________________

**** link donde paso la variable ****

<td  bgcolor="#FFFFFF"><a href="reporte_pdf.php?idu=<?php echo $row_trabajadores['id_trabajadores']?>&nomu=<?php echo $row_trabajadores['nombre']; ?>&appu=<?php echo $row_trabajadores['apellido_pat']; ?>&apmu=<?php echo $row_trabajadores['apellido_mat'];?>&fi=<?php echo $f_inicial  ?>&ff=<?php echo $f_final ?> "target="_blank">PDF</a></td>

_____________________________________________________________


ESTA ES LA PAGINA DONDE RECIBO LA VARIABLE

*** aquí recibo la variable ****

$f_ini= "-1";
if (isset($_POST['fi'])) {
  $f_ini= $_POST['fi'];
}

_______________________________________


****esta es la consulta donde la utilizo****


mysql_select_db($database_ConexionLocal, $ConexionLocal);
$query_incidencias =sprintf("select count(*),t.frg_fecha,r.descrip_incidencias from tbl_captura_orden t inner join cat_trabajadores s on t.frg_trabajadores=s.id_trabajadores inner join cat_incidencias r on t.frg_incidencias=r.id_incidencias where t.frg_trabajadores=%s and t.frg_fecha>=%s and t.frg_fecha<=%s group by r.descrip_incidencias",GetSQLValueString($id_trabajador, "int"),GetSQLValueString($f_ini, "date"),GetSQLValueString($f_fin, "date"));
$incidencias = mysql_query($query_incidencias, $ConexionLocal) or die(mysql_error());
$row_incidencias = mysql_fetch_assoc($incidencias);
$totalRows_incidencias = mysql_num_rows($incidencias);

_____________________________________________________________________


El echo es que no puedo pasar la variable, no se si este haciendo algo mal o simplemente no se permite pasar una variable de tipo "date" por URL,
les agradezco su apoyo......saludos 

adjunto una imagen donde se ve que la variable o las variables tipo " date" no contienen nada aun abiendo seleccionado un rango de fechas y al usuario "juan manuel" (que de él , si se estan pasando las variables)  






paso de variable.png

Fjor

unread,
Jun 26, 2018, 5:11:00 PM6/26/18
to linux...@googlegroups.com
¡Hola! Pues lo único que veo raro es que en la tercer sección envías la
variable con un URL/?var=xx&var=xx que corresponde al método
GET, y en la cuarta sección la quieres recuperar de $_POST['var'].

Puedes poner unos echo "<br>$var<br>"; en puntos estratégicos
para depurar cuáles valores tiene cada variable en ese punto...

Modo metiche ON: En la tercera sección me parece ilegible tu código;
te sugiero usar una variable de texto auxiliar e irle concatenando cada
referencia:

$HREF  = "reporte_pdf.php"
$HREF .= "?idu=$row_trabajadores['id_trabajadores']"
$HREF .= "&nomu=$row_trabajadores['nombre']"
$HREF .= "&appu=$row_trabajadores['apellido_pat']"
$HREF .= "&apmu=$row_trabajadores['apellido_mat']"
$HREF .= "&fi=$f_inicial"
$HREF .= "&ff=$f_final"
// echo "<br>HREF: $HREF<br>";  //-- para depurar

Luego el correspondiente

<a href="<?php echo $HREF; ?>" _target=_BLANK>PDF</a>

queda muy simple.

Aunque parezca más rollo, así es más fácil ver cuántas y cuáles variables
llevas, y se facilita agregarle más sin complicar el html con tanto tag (Además
de permitir un echo $HREF; abajito por si hay dudas de qué texto se generó).

Recuerda que el código bonito es una inversión que reduce las horas pompi
de estarse peleando con el mantenimiento del programa tres meses después...

Suerte,
Fjor

--
Has recibido este mensaje porque estás suscrito al grupo "LinuxCabal" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a linuxcabal+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a linux...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/linuxcabal/b3a11a6f-0c73-4167-b74f-886658a44dc3%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Caminar y caminar por la vereda del saber...
... de vez en cuando, mirar una estrella.

Francisco de Jesús Orozco Ruiz
Administración de Servicios de Red e Internet
Centro de Enseñanza Técnica Industrial - GDL

Octavio Alvarez

unread,
Jun 26, 2018, 8:42:45 PM6/26/18
to hgosi...@gmail.com, linux...@googlegroups.com
Hola,

Se usa "name" no "id" para decidir el índice en $_POST, pero aquí no hay
problema porque tanto name como id tienen el mismo valor.

Aquí es importante saber en dónde pierdes el valor o si nunca lo
recibes. Pensaría que desde la segunda sección algo no está bien, pero
el código se ve bien. A lo mejor lo estás perdiendo en otra parte. Yo
intentaría determinar si el código entra al isset(), con qué valor entra
y si al salir del if mantienes el valor. Si al salir del if mantienes el
valor y no lo mandas al HTML entonces no es en este código sino en algún
otro lugar.

También revisaría si el <form action> realmente manda a la forma
correcta y si el <form method> tiene realmente POST.

Te sugeriría agregar "for='fecha_inicial'" al <label>.

Si al ir debuggeando sabes más, nos dices y revisamos ya con más datos.

Saludos,
Octavio.

On 06/25/2018 01:59 PM, hgosi...@gmail.com wrote:
> Buenas tardes cabaleros,  soy nuevo programando en php y tengo una
> duda...estoy intentando pasar una variable por URL , pero la variable es
> tipo "date" , no me marca error en la compilación, el problema es que no
> pasa ningún dato, al momento de seleccionar la fecha que deseo pasar por
> URL, la variable pasa vacía.. este es parte del código
>
> ESTA ES LA PAGINA DONDE ENVIÓ LA VARIABLE
>
> *** este  input esta dentro de un "" FORM con metodo POST ***
> <td><label>Inicial</label></td> 
> <td> <input type="date" name="fecha_inicial" *id="fecha_inicial" *size="20">
> _____________________________________________________________
>
>
> *** aqui recibo la variable **
>
> *$f_inicia*l = "-1";
> if (isset($_POST["fecha_inicial"])) {
>   $f_inicial = $_POST["fecha_inicial"];
>   
> }
> _____________________________________________________________
>
> **** link donde paso la variable ****
>
> <td  bgcolor="#FFFFFF"><a href="reporte_pdf.php?idu=<?php echo
> $row_trabajadores['id_trabajadores']?>&nomu=<?php echo
> $row_trabajadores['nombre']; ?>&appu=<?php echo
> $row_trabajadores['apellido_pat']; ?>&apmu=<?php echo
> $row_trabajadores['apellido_mat'];?>*&fi=<?php echo $f_inicial 
> ?*>&ff=<?php echo $f_final ?> "target="_blank">PDF</a></td>
>
> _____________________________________________________________
>
>
> ESTA ES LA PAGINA DONDE RECIBO LA VARIABLE
>
> *** aquí recibo la variable ****
>
> $f_ini= "-1";
> if (isset($_POST['fi'])) {
>   $f_ini= $_POST['fi'];
> }
>
> _______________________________________
>
>
> ****esta es la consulta donde la utilizo****
>
>
> mysql_select_db($database_ConexionLocal, $ConexionLocal);
> $query_incidencias =sprintf("select
> count(*),t.frg_fecha,r.descrip_incidencias from tbl_captura_orden t
> inner join cat_trabajadores s on t.frg_trabajadores=s.id_trabajadores
> inner join cat_incidencias r on t.frg_incidencias=r.id_incidencias where
> t.frg_trabajadores=%s and *t.frg_fecha>=%s* and t.frg_fecha<=%s group by
> r.descrip_incidencias",GetSQLValueString($id_trabajador,
> "int"),*GetSQLValueString($f_ini, "date")*,GetSQLValueString($f_fin,
> "date"));
> $incidencias = mysql_query($query_incidencias, $ConexionLocal) or
> die(mysql_error());
> $row_incidencias = mysql_fetch_assoc($incidencias);
> $totalRows_incidencias = mysql_num_rows($incidencias);
>
> _____________________________________________________________________
>
>
> El echo es que no puedo pasar la variable, no se si este haciendo algo
> mal o simplemente no se permite pasar una variable de tipo "date" por URL,
> les agradezco su apoyo......saludos 
>
> adjunto una imagen donde se ve que la variable o las variables tipo "
> date" no contienen nada aun abiendo seleccionado un rango de fechas y al
> usuario "juan manuel" (que de él , si se estan pasando las variables)  
>
>
>
>
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "LinuxCabal" de
> Grupos de Google.
> Para cancelar la suscripción a este grupo y dejar de recibir sus
> mensajes, envía un correo electrónico a
> linuxcabal+...@googlegroups.com
> <mailto:linuxcabal+...@googlegroups.com>.
> Para publicar en este grupo, envía un correo electrónico a
> linux...@googlegroups.com <mailto:linux...@googlegroups.com>.
> <https://groups.google.com/d/msgid/linuxcabal/b3a11a6f-0c73-4167-b74f-886658a44dc3%40googlegroups.com?utm_medium=email&utm_source=footer>.

salvador barbosa ramires

unread,
Jun 26, 2018, 10:33:54 PM6/26/18
to linux...@googlegroups.com
muchas gracias a todos por responder!! Ya  pude resolver el problema , "si es que era un problema" con un script de Java ...Estuve investigando y con el script pude captar variables del input y del la tabla recuperada de mysql, todo gracias a sus consejos .....Mucha gracias..... saludos 

**** FUNCION DE JAVA*******

<script>
 function llevame(idu, nomu, appu, apmu){
// alert(idu+" - "+nomu+" - "+appu+" - "+apmu);
var fi=document.getElementById("fecha_inicial").value;
var ff=document.getElementById("fecha_final").value;
var pag="reporte_pdf.php?idu="+idu+"&nomu="+nomu+"&appu="+appu+"&apmu="+apmu+"&ff="+ff+"&fi="+fi;
var mensaje="";
if(fi==''){
mensaje+='pon la fecha de inicio ';
}
if(ff==''){
  mensaje+= 'pon la fecha de termino';
}
if(mensaje==""){
window.open(pag);
}
else{
  alert(mensaje);
}
 }
 
 </script>


******** FORM CON METODO GET *******

<form  action="<?php echo $editFormAction; ?>" method="get">
  <tr> <td>&nbsp;</td>
   
  </tr> 
 <tr>
 <td>   <label for="fecha" >Selecciona el Rando de Fecha:</label> </td>
 <td><label>Inicial</label></td> 
    <td> <input type="date" name="fecha_inicial" id="fecha_inicial" size="20"> </td>
  <td><label>Final</label></td>   
  <td> <input type="date" name="fecha_final" id="fecha_final"  size="20"></td>
    
     </form>


***** Y EL LINK PARA MANDAR LAS VARIABLES******

 <td  bgcolor="#FFFFFF"><a onclick="llevame(<?= $row_trabajadores['id_trabajadores']?>,'<?= $row_trabajadores['nombre']; ?>', '<?= $row_trabajadores['apellido_pat']; ?>', '<?= $row_trabajadores['apellido_mat'];?>')"  style="cursor:pointer" >PDF</a></td>

--
Has recibido este mensaje porque estás suscrito a un tema del grupo "LinuxCabal" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/linuxcabal/4X7SpPzDgnM/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a linuxcabal+unsubscribe@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a linux...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/linuxcabal/b3a11a6f-0c73-4167-b74f-886658a44dc3%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages