Foros del Web » Programando para Internet » PHP »

Problema paso datos con href....

Estas en el tema de Problema paso datos con href.... en el foro de PHP en Foros del Web. Hola a todos, este es mi primer mensaje, disculpad los errores pero soy un novato en el manejo del foro. Hace un par de meses ...
  #1 (permalink)  
Antiguo 19/01/2008, 16:58
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Exclamación Problema paso datos con href....

Hola a todos, este es mi primer mensaje, disculpad los errores pero soy un novato en el manejo del foro. Hace un par de meses que me metí con PHP y mysql y el otro día buscando el google conocí este foro.

Este primer mensaje como no podía ser de otra forma es para pedir ayuda, aunque espero que en el resto pueda ser yo el que ayude.

El problema que quería comentaros es que quiero pasar el valor de un checkbox al pulsar en un href, con un boton no hay problema uso $_POST y listo o $_GET, pero cuando quiero mandar el estado exacto de un check como parametro al picar sobre un href, (en este caso es al mismo) pues no lo consigo.

He extraido un fragmento de código para explicarme mejor:

código: prueba.php


if ($_GET['activo'] == 1)
$_POST['campo1'].checked;
?>
....
...
<form name='selec_campos' method='post' action= 'prueba.php' >

<input type=checkbox name= "campo1" value= "fechademanda" <?php if (($activo==1)or($_POST['campo1'])) echo 'checked ="checked"';?> >

<a method="get" href= "prueba.php?<?php if ($campo1){ echo 'activo=1'; }else{ echo 'activo=0'; } ?>" > <?php echo "Filtro1" ?></a>
<input name="botonc" type="submit" color="black" value="Añadir">
</form>


Explicación:
Cuando pulso botonc, no hay problema al ser tipo submit el valor de campo1 se pasa en $_POST['campo1'], pero cuando pulso en link "href" quiero llamar al mismo php pero con el valor que en ese momento tenga campo1, para que cuando se cargue de nuevo la página ponga a checked los checkbox correspondientes.

El problema es que al picar un link, no se pasan los $_POST, y lo tengo que pasar como parametro del vínculo, y al parecer el error está en como me refiero al checkbox.

Agradezco cualquier tipo de ayuda llevo atascado unos días aquí.

Muchas gracias de antemano...

Un saludo.

Última edición por jcarias; 19/01/2008 a las 17:12
  #2 (permalink)  
Antiguo 19/01/2008, 18:02
Avatar de j_aroche
Server Ninja
 
Fecha de Ingreso: agosto-2006
Ubicación: iPhone: 14.624481,-90.487457
Mensajes: 2.066
Antigüedad: 18 años, 3 meses
Puntos: 223
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Como bien sabes, al seguir un enlace aún estando dentro de un FORM el navegador no envía los valores de los demás controles. Me parece que el parametro que quieres pasar en $_GET[], lo pases por medio del valor del checkbox y quizás agregar un botón adicional al submit
__________________
Blog: JavierAroche.com - Twitter: @j_aroche
  #3 (permalink)  
Antiguo 20/01/2008, 05:28
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Muchas gracias por contestar...

Llevas razón, todo esto hay que hacerlo porque al hacer un href=...no se manda los datos con $_POST como al pulsar un botón.


El problema es que he realizado un sistema de solapas y cuando pulsan en la solapa lo que se ejecuta es un <a...href= " ">, en ese caso enseño las variables de esa solapa y quiero que los checkbox genéricos se queden igual, entonces solo quiero pasar en el <a...href="prueba.php?variable=valor&..." que la variable tome el valor en ese instante del checkbox y ya está, cuando cargue de nuevo prueba le haré un checked al checkbox o no dependiendo del valor de la variable que me haya llegado.

El problema es como hago referencia al valor del checkbox para pasarlo en el <a...href="prueba.php?variable=valor& ">en un instante al valor de un checkbox sin utilizar JS que no puedo usarlo.


De nuevo muchas gracias por ayudarme...
  #4 (permalink)  
Antiguo 20/01/2008, 05:50
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Cita:
El problema es como hago referencia al valor del checkbox para pasarlo en el <a...href="prueba.php?variable=valor& ">en un instante al valor de un checkbox sin utilizar JS que no puedo usarlo.
Hola jcarias

Cuando se activa un link que lleva variables se envían las que están escritas en el documento. Para alterar estos valores en base a algún cambio de estado de algún elemento del documento antes de activar el link debe realizarse desde el propio navegador y para ello, me temo, sólo puede hacerse con algún lenguaje de script del navegador.

Si no puede usar js me parece que no vas a poder solucionarlo con un link. La única forma de recoger el cambio de estado de un control de formulario y enviarlo sin usar js es con un submit.


Tal vez se me escape alguna alternativa, veamos si alguien más tiene alguna idea a aportar

un saludo
__________________
Javascript Códigos - Bambú difunde
  #5 (permalink)  
Antiguo 20/01/2008, 06:39
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Perfectamente, eso es lo que necesito,

Como podría hacer un submit??


La única alternativa que había pensado era en esa forzar el "supuesto submit" pero no he encontrado como por ahí me han indicado algo parecedo a...

<META HTTP-EQUIV='refresh' CONTENT='0; URL='prueba.php'>

pero me dice que no tengo permisos en el servidor

Te agradecería que me indicaras un ejemplo del submit y donde tendría que hacerlo...


Muchísimas gracias por el interes...espero tu respuesta
  #6 (permalink)  
Antiguo 20/01/2008, 07:00
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Ahí está el tema, que un submit sin hacer uso de javascript sólo puede hacerse con un botón de submit.

Vamos a ver, el asunto es que tienes un form con n campos que se envían por post a un documento prueba.php pero también tienes un link que va contra el mismo documento prueba.php y que debe pasar el valor actual de un campo determinado de ese mismo formulario. Si el usuario ha cambiado el estado inicial de ese campo debe enviarse ese cambio.

En cualquiera de los dos casos, darle al botón de submit al form o pinchar el link, se envía el mismo campo al mismo documento.

Si no quieres usar js lo único que se me ocurre es que uses otro botón de submit con el mismo nombre (botonc) en lugar del link y que envíe el formulario y luego en el servidor realices una acción u otra dependiendo del valor que traiga el campo de nombre botonc

Si el usuario ha enviado el formulario desde el botón de valor "Añadir" que haga lo pertinente y si ese campo no trae ese valor (trae lo devuelto por <?php echo "Filtro1" ?> ) quiere decir que le han dado a la pestaña y se realizan otras acciones (y se ignoran el resto de campos que han llegado)

No sé si he logrado explicarme.
__________________
Javascript Códigos - Bambú difunde
  #7 (permalink)  
Antiguo 20/01/2008, 12:52
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Te has explicado perfectamente, llevas toda la razón del mundo.

Una pregunta...si utilizara JS, cual sería la mejor opción pasar el valor del campo a una variable y pasar esta variable en el hrenf,... he intentado esto y no me tira.

<script language="JavaScript">$dato1 = document.selec_campos.campo1; </script> -->

<a method="get" href= "prueba.php?activo=<?php echo $dato1?>" > <?php echo "Filtro1" ?></a>

Disculpa mi ignorancia pero no tengo ni idea de Js, solo voy a usarlo en todo el proyecto para tomar ese valor y llevo buscando ejemplos un rato pero no lo consigo.

O que opción sería mejor...


Muchísimas gracias por ayudarme.....
  #8 (permalink)  
Antiguo 20/01/2008, 13:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Pues podrías ponerle al link algo como esto

Código:
<a href="prueba.php" onclick="this.href=this.href + '?activo=' + (document.forms['selec_campos'].campo1.checked ? 1 : 0)" 
Eso sería lo más práctico. Igual, si estuviera en tu lugar implementaría ambas opciones para que funcionara también sin js por si las moscas
__________________
Javascript Códigos - Bambú difunde
  #9 (permalink)  
Antiguo 20/01/2008, 16:44
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Muchísimas gracias, funciona perfectamente....:aplauso

Esta es la línea completa, en este caso la variable que uso es enlace...


<li><a href="demandas.php?activo= <?php echo $i ?>" onclick="this.href=this.href + '&enlace=' + (document.forms['selec_campos'].campo1.checked ? 1 : 0)" target=principal><?php echo Filtro.$i?></a></li>


Si no te molesta una última pregunta...como tengo 6 checkbox, habría posibilidad de para ahorrarme un case,...que campo1, sea campo.$i...y enlace sea enlace.$i, siendo $i la variable del for...He intentado algunas formas pero como JS utiliza el punto como separador, no encuentro la forma de hacerlo.

De nuevo muchas gracias, estaba realmente bloqueado y lucharé para no tener que hacer la versión PHP, al menos funciona así.

  #10 (permalink)  
Antiguo 21/01/2008, 04:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Pues no sé si te he entendido bien, pero puedes escribir tranquilamente el número de la variable en el código, algo tipo

Código:
(document.forms['selec_campos'].campo<?=$i?>.checked ? 1 : 0)
Al navegador le llegará directamente impreso el valor de $i y el código php no interfiere con el js ya que éste no le llega al navegador que es donde se ejecuta el js

Si no era eso me avisas
  #11 (permalink)  
Antiguo 21/01/2008, 11:40
 
Fecha de Ingreso: enero-2008
Ubicación: España
Mensajes: 16
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Por favor ayuda...se me acaba el tiempo...Problema paso datos con href....

Funciona todo perfectamente, muchísimas gracias por toda tu ayuda.

Me has sacado de un apuro.

  #12 (permalink)  
Antiguo 21/01/2008, 13:39
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 3 meses
Puntos: 381
Re: Problema paso datos con href....

Me alegra que pudieras resolverlo

Un saludo
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 14:14.