Foros del Web » Programando para Internet » Javascript »

Problema con función

Estas en el tema de Problema con función en el foro de Javascript en Foros del Web. Buenas, a ver tengo la siguiente función: Código: <script language="Java Script" type="text/javascript"> function unvoto(){ <?php mysql_query("update holiday set votos=votos+1 where id='\'+id+\''") or die("Could not insert ...
  #1 (permalink)  
Antiguo 22/10/2012, 07:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Problema con función

Buenas, a ver tengo la siguiente función:

Código:
<script language="Java Script" type="text/javascript">
function unvoto(){
<?php
            mysql_query("update holiday set votos=votos+1 where id='\'+id+\''") or die("Could not insert message");
?>
}
</script>
Que se ejecuta mediante un evento onclick de la siguiente manera:

Código:
$rid= mysql_query("select id,linkphoto,nombre,apellido from holiday") or die (mysql_error());


while ($nid = mysql_fetch_row($rid))
{
if (in_array($nid[0], $amigos))
{
echo "<a href='#' onmouseover=\"plus".$nid[0].".style.display='';cambiarImagen('".$nid[1]."');javascript:mostrardiv();\" onmouseout=\"plus".$nid[0].".style.display='none';javascript:cerrar();\"><img src='plus.png' onClick=\"unvoto('".$nid[0]."');\" id='plus".$nid[0]."' style=\"display:none;position:absolute;\"><img title='".$nid[2]." ".$nid[3]."' src='".$nid[1]."' style=\"border:1px solid #f4d5b8;\" height='45'></a>  ";
}
}
Mi problema está en que no consigo hacer llegar la variable $nid[0] a la función.
Cuando en la query de la función no aparece el where, la lleva a cabo pero en todos los registros y yo necesito que lo haga solo en uno.

En fín, help please. Gracias.
  #2 (permalink)  
Antiguo 22/10/2012, 08:42
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con función

PHP se ejecuta en el servidor, no puedes llamar a PHP desde javascript de ésa forma, Javascript se ejecuta en el cliente, necesitas una petición POST o GET para pasar esos datos al servidor PHP, a lo sumo con AJAX puedes hacerlo sin recargar la página

recomendación: leer un manual de AJAX: http://librosweb.es/ajax/index.html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 23/10/2012, 04:02
 
Fecha de Ingreso: mayo-2009
Mensajes: 43
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Problema con función

Si, se puede, la consulta la ejecuta, el problema es enviar el valor del where...
  #4 (permalink)  
Antiguo 23/10/2012, 04:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Problema con función

Hola:

Para evitar confusiones, deberías mostrar el código que le llega al navegador: "ver código fuente" (todos los navegadores tienen esa opción en algún lado, será cuestión de que sepas buscarla)... con lo que hay en el navegador será mejor ayudarte...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 23/10/2012, 07:55
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con función

Cita:
Iniciado por EduardoCh Ver Mensaje
Si, se puede, la consulta la ejecuta, el problema es enviar el valor del where...
solo se ejecutará la primera vez cuando PHP reciba la petición, pero si ejecuta desde javascript la función unvoto:

Código Javascript:
Ver original
  1. <script language="Java Script" type="text/javascript">
  2. function unvoto(){
  3. <?php
  4.             mysql_query("update holiday set votos=votos+1 where id='\'+id+\''") or die("Could not insert message");
  5. ?>
  6. }
  7. </script>

NO se ejecutará PHP ya que en ese instante PHP ha cerrado y devuelto la respuesta al cliente, si ve, como le indicó @caricatos, lo que tendrá en el código fuente es esto:

Código Javascript:
Ver original
  1. <script language="Java Script" type="text/javascript">
  2. function unvoto(){
  3. // ------------- (aquí No hay llamada a PHP, ni nada)
  4. }
  5. </script>

es decir que unvoto hará NADA, porque como le indique PHP se ejecuta en el servidor, necesita una petición HTTP para ejecutarlo
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 23/10/2012 a las 08:03

Etiquetas: php, select
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 07:37.