Foros del Web » Programando para Internet » PHP »

Submit un link

Estas en el tema de Submit un link en el foro de PHP en Foros del Web. En mi pagina php tengo esto: Cita: <a href="Final.php" onclick="pasarvariable(); return false;">Grabar kilocalorias restantes</a> que es un link que llama a una funcion "pasar variable" ...
  #1 (permalink)  
Antiguo 08/04/2012, 09:38
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Submit un link

En mi pagina php tengo esto:
Cita:
<a href="Final.php" onclick="pasarvariable(); return false;">Grabar kilocalorias restantes</a>
que es un link que llama a una funcion "pasar variable" (javascript) para pasar una variable desde javascript (llamada var cneed) a php (llamada $cneed).

En el mismo archivo "Final.php", un poco más abajo, tengo esto

Cita:
<form name="formulario" method="post" action="Final.php"/>
<label>Nombre:
<input type="text" name="nombre" id="nombre" maxlength="24" value=""/>
</label>
<label>Contraseña:
<input type="password" name="password" id="password" value="" maxlength="12">
</label>


<?php
// Debes verificar que realmente exista
if(isset($_GET['cneed'])) {
$cneed = $_GET['cneed'];
}
$fecha = date('Y-m-d');
$nombre= $_POST[nombre];
$password= $_POST[password];
$ingresar_usuario = "INSERT into control_de_peso (nombre, password, fecha, calorias_totales) VALUES('$nombre', '$password', '$fecha','$cneed')";
mysql_query($ingresar_usuario, $Conexion);

?>
<input name="submit" type="submit" value="Enviar"/>
</form>
Que son formularios para enviar los datos a mi base de datos. El tema es que tengo que hacer click en el primer link para pasar la variable desde js a php para poder almacenarla. Cuando quiero almacenarla en la base de datos MySQL, de alguna manera, inserta en la tabla 2 filas: una fila con los valores nombre y contraseña vacios (calculo que los toma cuando abro la pagina) y el valor de cneed=31 (por ejemplo, es una variable). Luego otra fila, con el valor de nombre y contraseña <>"" pero cneed=0, como que ya se borró.
Como puedo hacer para que me inserte nombre, contraseña, y cneed en una misma fila (la fecha la coloca en ambas filas correctamente).
Si pudiese de alguna forma meter el linkde arriba al submit de abajo, creo que se solucionaría el problema. Gracias, cualquier ayuda bienvenida. Felices Pascuas!
  #2 (permalink)  
Antiguo 08/04/2012, 12:05
 
Fecha de Ingreso: julio-2011
Mensajes: 220
Antigüedad: 12 años, 9 meses
Puntos: 72
Respuesta: Submit un link

Puedes utilizar un campo hidden en el formulario para almacenar la variable $cneed y despues verificar el valor de este campo para realizar la consulta a la base de datos.
  #3 (permalink)  
Antiguo 08/04/2012, 13:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

lubtufano, gracias por responder. No entiendo bien como sería, me podrías explicar un poco más? Ahi te va un puntito de karma
  #4 (permalink)  
Antiguo 09/04/2012, 10:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

Alguien me puede ayudar? Estoy con este problema hace tiempo
  #5 (permalink)  
Antiguo 09/04/2012, 11:00
Avatar de RoggerElfo  
Fecha de Ingreso: enero-2008
Ubicación: En la ciudad de los Reyes LIMA !
Mensajes: 121
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Submit un link

lo que el te dice es que en el form ponga un input de tipo hidden ... no se vera en pantalla pero esta ahi para que puedas enviar el valor ... es algo asi ...

<input type="hidden" name="algo" id="algo" value="Valor que quieras enviar">
  #6 (permalink)  
Antiguo 09/04/2012, 11:12
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: Submit un link

hola

no es muy recomendable usar input hidden, prefiero usar sesiones , no entiendo muy bien que es lo que necesitas hacer
  #7 (permalink)  
Antiguo 09/04/2012, 11:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

RoggerElfo y informacionsys: MUCHAS GRACIAS POR RESPONDER!
Entiendo algo de sesiones, entiendo más php que javascript. Voy a comentar lo que deseo, porque veo que no es tan simple y muchos no me han podido contestar:
1) Hay un script en javascript que tiene una función y me tira el valor de una variable, llamada cneed, según los datos de un usuario. Supongamos que cneed=3570.
2) Lo que hago es tomar el valor de esta variable y llevarlo a php, de la siguiente forma:

Cita:
<script type="text/javascript">
function pasarvariable() {
location.href="Final.php?cneed=" + cneed;
}
</script>
El cual llama a la función pasarvariable de javascript, retorna un valor y lo puedo meter en la variable $cneed (de php) mediante el siguiente link

Cita:
<a href="Final.php" onclick="pasarvariable(); return false;">Grabar kilocalorias restantes
</a>
Donde, en php, tengo lo siguiente
Cita:
$cneed = $_GET['cneed'];
De esta manera, puedo pasar la variable js más importante a php. Hasta aquí todo bien.
El problema viene cuando cargo la página final.php y quiero hacer un registro de usuarios rápido, donde el usuario (supongamos que nunca ingresó) poner su nombre y la contraseña e ingresa, en otros formularios, el valor cneed. Ahí es donde tengo el problema, en la base de datos me inserta cneed cuando los valores nombre y contraseña están vacíos, o me inserta el nombre y la contraseña, pero con el valor de cneed=0. No puedo hacer que tanto el nombre, contraseña y cneed salgan en la misma fila de mi base de datos.
  #8 (permalink)  
Antiguo 09/04/2012, 11:40
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: Submit un link

ok listo men

en vez de hacer el insert cuando exista la variable cneed , hacerlo cuando oprima el boton submit del formulario.



Código HTML:
Ver original
  1. <?php
  2. $primer_cneed = $_GET['cneed'];//recibes la variable que enviaste por la funcion javascript
  3. ?>
  4. <form name="formulario" method="post" action="Final.php?cneed_final=<?php echo $primer_cneed; ?>/>
  5. <label>Nombre:
  6. <input type="text" name="nombre" id="nombre" maxlength="24" value=""/>
  7. <label>Contraseña:
  8. <input type="password" name="password" id="password" value="" maxlength="12">
  9. <input name="submit" type="submit" value="Enviar" name="accion"/>
  10. </form>
  11.  
  12. <?php
  13.  
  14. if(isset($_POST['accion'])) {// validas cuando se envie el form
  15.  
  16. $segundo_cneed = $_GET['cneed_final'];// recibes el valor enviado por el action del form
  17. $fecha = date('Y-m-d');
  18. $nombre= $_POST[nombre];
  19. $password= $_POST[password];
  20. $ingresar_usuario = "INSERT into control_de_peso (nombre, password, fecha, calorias_totales) VALUES('$nombre', '$password', '$fecha','$segundo_cneed')";
  21. mysql_query($ingresar_usuario, $Conexion);
  22.  
  23. }
  24.  
  25. ?>
  #9 (permalink)  
Antiguo 09/04/2012, 11:46
Avatar de RoggerElfo  
Fecha de Ingreso: enero-2008
Ubicación: En la ciudad de los Reyes LIMA !
Mensajes: 121
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Submit un link

mmmm....

me imagino que tu variable cneed tendra un valor no ?? porque no lo pasas como parametro ni naa ..

<script type="text/javascript">
function pasarvariable() {
location.href="Final.php?cneed=" + cneed;
}
</script>

a la hora que llegas a Final.php me imagino que te debe mostrar un formulario de ingreso de datos ... de ahi no entiendo porque tienes ese problema ... primero confirmame que hace Final.php
  #10 (permalink)  
Antiguo 09/04/2012, 12:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

informacionsys, me saco el sombrero, tuve que hacer varias modificaciones, pero tu idea (que estuve pensando hoy mismo pero no puse en práctica) de tomar 2 veces la variable, resultó a la perfección. Gracias, te volveré a consultar en el futuro inmediato
Cita:
$gracias=mysql_query("SELECT * FROM tu_cerebro where nombre='$informacionsys' AND mi_futuro='complicado'");
  #11 (permalink)  
Antiguo 09/04/2012, 13:30
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años
Puntos: 76
Respuesta: Submit un link

hola

jeje ok listo men , me alegra que te haya funcionado, aunque en lo personal no es muy viable hacer eso..
  #12 (permalink)  
Antiguo 09/04/2012, 13:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

Por que? es mejor usar cookies?
  #13 (permalink)  
Antiguo 09/04/2012, 14:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 70
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Submit un link

Pregunto again: Si hago un registro de usuario, como la gente, el problema es que cuando el usuario, ya registrado, coloque su nombre y contraseña (ni hablar de captcha por ahora) e ingrese a un nueva sessión, entonces deberá tomar el valor cneed almacenado en la base de datos. Luego, ese valor, que se recogerá en php, debe volverse a javascript. Luego, (no se si se puede hacer): Los formularios pueden ser modificados físicamente con las variables traidas de una base de datos?
Por ejemplo: Supongamos que guardo la variable "$peso" = 70. Ahora en la base de datos, la variable $peso vale 70. Luego de traerla a php, la convierto en una variable javascript (var peso = 70). Por último, hacer que un formulario, por ejemplo un campo de texto simple, tenga un valor name=70 (no se, form.noseque.texto=70, pero esto ya es js y no php). La idea madre de todo esto es que cuando el usuario ingresa a mi sitio, actualice los formularios de peso, edad, altura, etc. inmediatamente, para que no tenga que ingresar esos datos nuevamente.

Etiquetas: formulario, link, mysql, submit, tabla, variables, usuarios
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 22:26.