• Jueves 28 de Marzo de 2024, 12:13

Autor Tema:  Asignar Valor A Variable  (Leído 4611 veces)

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Asignar Valor A Variable
« en: Jueves 10 de Junio de 2004, 05:55 »
0
Saludos...

Creo que se me estan acabando las preguntas, y todo gracias a estos maravillosos foros, hechos para compartir conocimientos... Gracias!!!

Bueno, paso a la preguntilla...

Tengo una BD, una Tabla, un campo... este campo es autonumerico y autoincrementable (en Postgresql que es donde estoy trabajando, es serial).

Tengo una pag .php, digamos, con una agenda de actividades diarias o mas bien semanales:
Hora---Lunes---Martes---Miercoles---Jueves---Viernes
8____|______|_______|________|_______|_____
9____|______|_______|________|_______|_____
10___|______|_______|________|_______|_____
etc

resulta que el dia X a la hora Z quiero insertar en un variable, con un click del raton el valor el campo serial que extraigo mediante una consulta.

¿como se hace?

Agradezo enormemente la ayuda que me puedan brindar, ejemlos, pedacitos de codigo, y sobre todo: lectura ;-)

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #1 en: Jueves 10 de Junio de 2004, 15:26 »
0
Hola, no termino de ver que es lo que quieres hacer exactamente. Los valores del campo serial que extraes de la consulta ¿donde los guardas, en un select o algo así? El valor que quieres almacenar en la variable que representa al dia X y a la hora Z ¿lo vas a tener que enviar al servidor para guardarlo en la base de datos?

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #2 en: Jueves 10 de Junio de 2004, 16:04 »
0
Hola

--Los valores del campo serial que extraes de la consulta ¿donde los guardas, en un select o algo así?

sip, un select

--El valor que quieres almacenar en la variable que representa al dia X y a la hora Z ¿lo vas a tener que enviar al servidor para guardarlo en la base de datos?

el valor es el mismo que acabo de consultar. Debo guardarlo en otra tabla junto con la fecha (dia X  hora Z)

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #3 en: Jueves 10 de Junio de 2004, 19:53 »
0
Digamos...

tengo en pag1.php:
select den_id from...
...
$den_id

y mas abajito:
<table>
  <tr>
    <td></td> /* esta tabla corresponde a todos los dias de una semana enuna sola hora , es un ejemplo*/
    <td><u><? echo $pl ?></u></td>
    <td><u><? echo $pm ?></u></td>
    <td><u><? echo $pi ?></u></td>
    <td><u><? echo $pj ?></u></td>
    <td><u><? echo $pv ?></u></td>
  </tr>
...
</table>

lo que quiero es que $den_id se guarde con un click del raton en una de las variables que esta en la tabla, a escojer por el usuario.

despues vendira algo asi como:
insert ... ($den_id,$pl) /* por ejemplo, para guardar el evento $den_id, y el momento $pl (dia y hora) */

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #4 en: Viernes 11 de Junio de 2004, 10:25 »
0
Ok ya lo voy pillando. Podrías poner en cada celda de la agenda un enlace que llame a una función de JS pasándole el día y la hora. Por ejemplo, el lunes a las 8 a.m. podría quedar así

Código: Text
  1. &#60;a onClick=&#34;nuevoEvento(1, 8);&#34; style=&#34;cursor:hand&#34;&#62;&#60;u&#62;Añadir evento&#60;/u&#62;&#60;/a&#62;
  2.  


en el formulario, además del select con los eventos podrías tener dos campos ocultos, el dia y la hora

Código: Text
  1. &#60;form name=&#34;eventos&#34; method=&#34;post&#34; action=&#34;&#34;&#62;
  2. &#60;input type=&#34;hidden&#34; name=&#34;dia&#34; value=&#34;0&#34;&#62;
  3. &#60;input type=&#34;hidden&#34; name=&#34;hora&#34; value=&#34;0&#34;&#62;
  4. &#60;select name=&#34;den_id&#34;&#62;
  5. ...
  6. ...
  7. &#60;/select&#62;
  8. &#60;/form&#62;
  9.  


y la función nuevoEvento es la que asigna los valores y envía el formulario

Código: Text
  1. function nuevoEvento(dia, hora) {
  2.    document.eventos.dia.value = dia;
  3.    document.eventos.hora.value = hora;
  4.    document.eventos.submit();
  5. }
  6.  


Espero que te sirva.

Salu2,
Avalon

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #5 en: Viernes 11 de Junio de 2004, 15:12 »
0
ok...mil disculpas, el select que dije que si iba a usar es de SQL, o sea,  una cosulta a una BD

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #6 en: Viernes 11 de Junio de 2004, 19:51 »
0
Si, lo que hace la función nuevoEvento es enviar un formulario, el cuál contiene el dia, la hora y el evento seleccionado en el select ¿no es eso lo que querías hacer, mandar los 3 datos a un script que inserte un nuevo evento en la BD?

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #7 en: Viernes 11 de Junio de 2004, 22:06 »
0
mmm, veamos...

Tengo un formulario en pag, digamos form1, que me le introduzco la clave y me recupera el nombre y apellido correspondiente.

Le agrego, digamos, por formulario, campo1 y campo2 (ejem... pollo y costo), le digo guardar, generando un cod_compra...

..y se dirije a la pag2 que es otro formulario, digamos form2...

En pag2 tengo una agenda de dias y horas...

Lo que quisiera es que al darle click sobre una celda de la agenda, se asigne el cod_compra a una variable que este ahi,  de manera que se sepa, por ejemplo, cuando compre que cosa y cuanto em costo...  y luego pueda hacer con ella(cod_compra) cualqueir cosa

Disculpa si no lo se explicar, pero ... y gracias, se el esfuerzo que estas haciendo solo por entender el problema...que es la mayor dificultad...

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #8 en: Sábado 12 de Junio de 2004, 23:43 »
0
Saludos...

Digamos que quiero una agenda de actividades semanales, por ejemplo:

Semana anterior                           Semana siguiente
Hora---Lunes---Martes---Miercoles---Jueves---Viernes
8____|______|_______|________|_______|_____
9____|______|_______|________|_______|_____
10___|______|_______|________|_______|_____
etc

Digamos que quiero guardar que el dia X a la hora Y tengo cita en el odontologo, el dia X2 a la hora Y2 tengo que comprarme una camisa, etc...

Mi idea, al hacer click sobre el momento (dia y hora) pueda quedar guardado que ya tengo ocupado ese momento... quizas podria guardarlo en alguna variable para que luego yo le de click y me salte una pequeña ventana mostrandome lo que tengo para ese momento...

pero, ¿como? esa es la ayuda que necesito, espero haber explicado bien ahora mi inquietud, mira que le he dado mil vueltas replanteandome el problema y como exponerlo...

Gracias por los esfuerzos

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #9 en: Lunes 14 de Junio de 2004, 20:57 »
0
Hola, vamos a ver si ahora nos entendemos...

Tu tienes un script en pag2.php que lo que hace es mostrarte una agenda semanal con todas las actividades que tienes. Supongo que en el momento de generar la tabla haces una consulta a la base de datos para saber que actividades tienes durante la semana y las muestras en la tabla de horarios.

Lo que yo te planteaba antes es que al generar la agenda, en aquellas horas que estén disponibles, insertes un enlace en cada celda (con un texto o con una imagen) para que puedas insertar un nuevo evento, un cod_compra o lo que sea. Podrías guardar ese evento en una variable de JavaScript de forma temporal, pero tarde o temprano tendrás que guardarlo en la base de datos para que cuando abras la agenda al día siguiente te aparezcan todas las citas. Entonces, en vez de guardarlo en una variable, por que no guardarlo directamente en la base de datos y volver a generar la agenda (pag2.php) en la que ya se mostrará este evento recien añadido y por tanto no se nos permitirá añadir una nueva cita el mismo día y hora. Todo esto lo puedes hacer con el código que puse unos mensajes más arriba. Faltaría pasarle algún parámetro más a pag2.php para indicarle que quieres añadir una cita en la base de datos.

Código: Text
  1. &#60;form name=&#34;eventos&#34; method=&#34;post&#34; action=&#34;pag2.php?cita=nueva&#34;&#62;
  2.  

pag2.php
Código: Text
  1. if (&#036;_GET['cita'] == &#34;nueva&#34;) {
  2.    // Aquí insertarías los valores de &#036;_POST['dia'], &#036;_POST['hora'] y &#036;_POST['den_id'] en la base de datos
  3. }
  4.  


Bueno, espero que ahora sí nos hayamos entendido y si no pués seguiremos intentándolo.

Salu2,
Avalon

cesarc

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #10 en: Martes 15 de Junio de 2004, 17:55 »
0
ok... mil disculpas, ahora soy yo quien no lo veia... pero, (tengo otra duda :-(  ) como manipulos si:

<input type="hidden" name="dia" value="0">
<input type="hidden" name="hora" value="0">

dia y hora son 2 campos en mi BD de tipo date y time, respectivamente...

Porque lo que le estoy pasando es:
<a onClick="nuevoEvento(1, 8)

¿¿¿????

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #11 en: Jueves 17 de Junio de 2004, 10:23 »
0
En cada celda tienes que poner un enlace y pasarle unos valores distintos. Por ejemplo el lunes a las 8 pondrías esto

Código: Text
  1. &#60;a onClick=&#34;nuevoEvento(1, 8);&#34; style=&#34;cursor:hand&#34;&#62;&#60;u&#62;Añadir evento&#60;/u&#62;&#60;/a&#62;
  2.  


y el miércoles a las 16 esto

Código: Text
  1. &#60;a onClick=&#34;nuevoEvento(3, 16);&#34; style=&#34;cursor:hand&#34;&#62;&#60;u&#62;Añadir evento&#60;/u&#62;&#60;/a&#62;
  2.  



Y por otro lado aunque en el formulario hayas puesto esto

Código: Text
  1. &#60;input type=&#34;hidden&#34; name=&#34;dia&#34; value=&#34;0&#34;&#62;
  2. &#60;input type=&#34;hidden&#34; name=&#34;hora&#34; value=&#34;0&#34;&#62;
  3.  


la función nuevoEvento ya se encarga de asignar a los campos dia y hora los valores correspondientes.


Código: Text
  1. function nuevoEvento(dia, hora) {
  2.   document.eventos.dia.value = dia;
  3.   document.eventos.hora.value = hora;
  4.   document.eventos.submit();
  5. }
  6.  

Avalon

  • Miembro MUY activo
  • ***
  • Mensajes: 448
    • Ver Perfil
Re: Asignar Valor A Variable
« Respuesta #12 en: Jueves 17 de Junio de 2004, 10:28 »
0
No había leído esto  &lt;_&lt;

Citar
dia y hora son 2 campos en mi BD de tipo date y time, respectivamente...


Entonces hay que cambiar lo anterior.

Se me ocurren 2 cosas que puedes hacer.

Primera opción

En lugar de pasarle a nuevoEvento el dia de la semana le pasas el dia del mes y además el mes y el año.


El 17 de marzo de 2005 a las 8 sería así

Código: Text
  1. &#60;a onClick=&#34;nuevoEvento(17, 3, 2005, 8);&#34; style=&#34;cursor:hand&#34;&#62;&#60;u&#62;Añadir evento&#60;/u&#62;&#60;/a&#62;
  2.  


Al formulario le añades 2 campos

Código: Text
  1. &#60;input type=&#34;hidden&#34; name=&#34;mes&#34; value=&#34;0&#34;&#62;
  2. &#60;input type=&#34;hidden&#34; name=&#34;anyo&#34; value=&#34;0&#34;&#62;
  3.  


y la función nuevoEvento quedaría así

Código: Text
  1. function nuevoEvento(dia, mes, anyo, hora) {
  2.  document.eventos.dia.value = dia;
  3.  document.eventos.mes.value = mes;
  4.  document.eventos.mes.value = anyo;
  5.  document.eventos.hora.value = hora;
  6.  document.eventos.submit();
  7. }
  8.  



Segunda opción

Pasarle a nuevoEvento únicamente una marca de tiempo que obtienes en PHP con la función strtotime( fecha ). Por ejemplo para obtener la marca de tiempo del 17 de marzo de 2005 a las 8 sería así

Código: Text
  1. &#036;marca = strtotime(&#34;3/17/2005 8&#34;);
  2.  

y a la función nuevoEvento le pasarías únicamente esa marca de tiempo

Código: Text
  1. &#60;a onClick=&#34;nuevoEvento(1111042800);&#34; style=&#34;cursor:hand&#34;&#62;&#60;u&#62;Añadir evento&#60;/u&#62;&#60;/a&#62;
  2.  


En el formulario tendrías esto

Código: Text
  1. &#60;input type=&#34;hidden&#34; name=&#34;marca&#34; value=&#34;0&#34;&#62;
  2.  


y la función nuevoEvento sería así

Código: Text
  1. function nuevoEvento(marca) {
  2.  document.eventos.marca.value = marca;
  3.  document.eventos.submit();
  4. }
  5.  


Después desde PHP podrás obtener la fecha, el dia, la hora, etc... a partir de esa marca de tiempo mediante la función getdate ( marca );


En la primera opción quizá se ve un poco más claro los datos que estás enviando pero personalmente prefiero la segunda (la de la marca de tiempo).


Salu2,
Avalon