Foros del Web » Programando para Internet » PHP »

Porqué el funcionamiento no es el esperado??

Estas en el tema de Porqué el funcionamiento no es el esperado?? en el foro de PHP en Foros del Web. Hola, tengo un problema que no sé porque sucede, paso a explicarlo. Tengo una serie de links, y al pulsar uno de los links quiero ...
  #1 (permalink)  
Antiguo 21/08/2003, 12:40
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Pregunta Porqué el funcionamiento no es el esperado??

Hola, tengo un problema que no sé porque sucede, paso a explicarlo.

Tengo una serie de links, y al pulsar uno de los links quiero almacenar en una tabla el código de SOLO el link que se pulsa .

Pero lo increible es que se guardan los códigos de todos los links.

<a onClick="<?php Código que añade un registro en una tabla con el código del link?> " href="<?php echo $row_Recordset1['RUTA']?> " target="_top"><?php echo $row_Recordset1['TITULO'];?> </a>

Como podeis comprobar la ruta del archivo al que lleva el link lo cojo de una tabla.

Lo que hago es utilizar el evento onClick para cuando se pulse, almacenar el registro en la tabla, pero SOLO QUIERO QUE SE ALMACENE EL CÓDIGO DEL LINK QUE SE PULSA Y NO TODOS LOS CÓDIGOS.

Creo que el problema es porque está considerando todos los links para el evento onClick , pero no sé como hacerlo individualmente para cada uno.


Si alguién tiene algún comentario, se lo agradezco.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 21/08/2003, 14:35
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

PHP se ejecuta en el servidor. Javascript en el navegador (los eventos onclick y demas son javascript).

Primero se ejecuta todo el codigo PHP en el servidor. Lo que no es PHP no se toca se envia al navegador. Se envia el HTML/Javascript generado al navegador. El navegador ejecuta el Javascript.

Espero que hayas entendido por que el script funciona como funciona, que es realmente como le has dicho que lo haga.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/08/2003, 20:27
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Bien, pero lo que no entiendo es que si tengo tres links por ejemplo, para cada uno de ellos tenemos una sentencia MySql distinta, que solo DEBE LLEVARSE a cabo cuando pulsamos su link correspondiente.


<a onClick="<?php

$insertSQL = "INSERT INTO Tabla .........";


$Result1 = mysql_query($insertSQL, $connProyecto) or die(mysql_error());?>" href="<?php echo $row_Recordset1['RUTA']?>" target="_top"><?php echo $row_Recordset1['TITULO'];?></a>

¿Porque al pulsar UN SOLO LINK de los tres se ejecutan las tres sentencias Mysql de los tres link?

Vale que el código PHP ya haya sido interpretado en el servidor, pero cada sentencia MySQL esta "sujeta" a su evento no??


Si tengo tres links: A , B , C


Y la sentencia de A es:

"INSERTA EN LA TABLA UN REGISTRO CON CODIGO 001 y NOMBRE_LINK A"

La de B:

"INSERTA EN LA TABLA UN REGISTRO CON CODIGO 002 y NOMBRE_LINK B"

La de C:

"INSERTA EN LA TABLA UN REGISTRO CON CODIGO 003 y NOMBRE_LINK C"


Yo al pulsar el link A, tiene que ejecutarse SOLO la primera sentencia y almacenarme ese registro en la tabla no??


Y no hacer lo que hace ahora, que es ejecutar las tres sentencias, pulsando un SOLO LINK. Y almacenando la información de los tres links.


Si a la página que muestra los tres link, le doy al botón derecho del ratón y veo su código fuente, así aparecen los tres links:

...

<tr bgcolor="#99CCFF">
<td width="50%"> <div align="center"><a onClick=" " href="ruta1" target="_top">cccccccccccc</a></div></td>
<td width="50%" height="22"> <div align="center">cccccccccccc</div></td>
</tr>
<tr bgcolor="#99CCFF">
<td width="50%"> <div align="center"><a onClick="" href="ruta2" target="_top">bbbbbbbbb</a></div></td>
<td width="50%" height="22"> <div align="center">bbbbbbbbbbbb</div></td>
</tr>
<tr bgcolor="#99CCFF">
<td width="50%"> <div align="center"><a onClick="" href="ruta3" target="_top">aaaaaaaaaaaa</a></div></td>
<td width="50%" height="22"> <div align="center">aaaaaaaaaaaa</div></td>
</tr>

...

Se puede observar claramente que hay un evento onClick INDIVIDUAL para cada link, entonces¿Porqué los ejecuta todos?

Un saludo y gracias por el interés.

Última edición por dominguez; 21/08/2003 a las 20:56
  #4 (permalink)  
Antiguo 21/08/2003, 21:42
 
Fecha de Ingreso: marzo-2003
Mensajes: 277
Antigüedad: 21 años, 1 mes
Puntos: 0
<a onClick="<?php

$insertSQL = "INSERT INTO Tabla .........";


con esto lo que el servidor apache ( o el que ocupes como servidor ) hace es cuando esta leyendo el codigo de tu pagina y llege a esta parte hace la sentencia sql y pone el resultado despues de

<a onClick=

osea si la sentencia arroja un mensaje lo que aparece en el navegador seria

<a onClick=lo que la sentencia arrojo

y cuando el usuario que ve tu pagina le hace un click a ese link el navegador haria lo que te entrego en la sentencia sql que como es un INSERT o te arroja nada o te arroja un mensaje de error

espero que entiendas que java y php son lenguajes distintos en el tema de ejecucion ya que en java el usuario puede ver el codigo y el resultado, pero no puede hacer cosas que el servidor procese en la misma ventana del navegador sin refrescar

lo que te recomendaria es que cuando el usuario le de click a ese enlace se habra una pagina como popup donde este el script de php que ingrese el dato que tu definas y despues se cierre automaticamente

seria la unica forma de ocupar php con javascript sin modificar la pagina origen

salu2
  #5 (permalink)  
Antiguo 21/08/2003, 22:18
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Vale, voy a intentarlo a ver que pasa...

Un saludo y gracias.
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 21:40.