Foros del Web » Programando para Internet » Javascript »

onclick pasar variable javascript a php

Estas en el tema de onclick pasar variable javascript a php en el foro de Javascript en Foros del Web. Hola. Estoy tratando de hacer que al pulsar un enlace, onclick haga dos cosas, primero mostrar un texto (que eso lo hace bien), y luego ...
  #1 (permalink)  
Antiguo 07/07/2011, 03:01
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 1
onclick pasar variable javascript a php

Hola. Estoy tratando de hacer que al pulsar un enlace, onclick haga dos cosas, primero mostrar un texto (que eso lo hace bien), y luego además darle valor a una variable y que se pueda utilizar ese valor en una variable php.

Es que quiero mediante php, grabar en la BBDD el click para contabilizarlo. Es por eso que preciso que me pase la variable desde javascript a php.
Este es el código, pero no me funciona. Parece que en el onclick interfiere una funcion con la otra. Si le quito la funcion valor1() me muestra muy bien el texto, pero si la pongo, entonces dependiendo del orden en que se ejecuten hace una cosa u otra, pero no funciona como debe. Tampoco consigo coger con php el valor de la variable "valor"
<head>
<script>
function mostrar(enla) {
obj = document.getElementById('oculto');
obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';
enla.innerHTML = (enla.innerHTML == '') ? 'Ver Telefono del anunciante' : '';
}
</script>
</head>
<body>
<script>
function valor1(){
var valor;
valor=4
document.getElementById("div1").value = valor;
document.write(valor);
}
</script>
<br/>
<a href="#" onClick="valor1(); mostrar(this); return false" />
<div id="show">Ver Telefono del anunciante</div></a>
<div id="oculto" style="display:none">Tlf. '.$tlf1.'</div>
<div id="div1"> </div>
<?php
$suma = $_GET["div1"];
echo 'La suma en php es '.$suma.'<br/>';
?>
</body>
  #2 (permalink)  
Antiguo 07/07/2011, 04:29
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: onclick pasar variable javascript a php

hola Piso,

tu problema es que estas asignando un valor a un DIV, y un DIV no tiene la propiedad value. Por poder, le puedes 'crear' esa propiedad, pero luego en el código PHP no la vas a poder recuperar.
Prueba a poner un campo oculto (un input type="hidden") que esos si que tienen propiedad value.
De tal manera que en tu código PHP podrás recuperar el valor que el JS le ha dado a tu hidden.

saludos.
  #3 (permalink)  
Antiguo 07/07/2011, 04:59
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 1
Respuesta: onclick pasar variable javascript a php

Gracias por responder. Pero ¿Cómo hago eso?. Es decir, te refieres a ¿meter el hidden dentro del div?, en ese caso ¿qúe value le pongo?. He probado a poner un value cualquiera y no lo coge.

De todos modos el onclick sigue fallando cuando tiene dos acciones.
  #4 (permalink)  
Antiguo 07/07/2011, 05:08
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: onclick pasar variable javascript a php

te estará fallando en esta línea:

document.getElementById("div1").value = valor;

porque un DIV no tiene la propiedad VALUE. El resultado de intentar cazar la propiedad VALUE de un DIV es UNDEFINED, y por tanto luego no la puedes pintar en pantalla con document.write(valor);

si pones un hidden no hace falta poner un div, si no quieres, por ejemplo:

<input type="hidden" id="tu_hidden" value="0" />

y luego:

document.getElementById('tu_hidden').value;
document.write(valor);

saludos.
  #5 (permalink)  
Antiguo 07/07/2011, 05:18
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: onclick pasar variable javascript a php

creo que ya sé qué te está pasando,

la última línea de tu función valor1() es--> document.write(valor)
con eso estas borrando todo el contenido de tu web, y lo único que vas a mostrar es el valor. Prueba si quieres a ver el código fuente después de hacer el document.write. Después llamas a la funcion mostrar y, evidentemente no está, porque el document.write la ha borrado.
Si quieres que se muestre no uses document.write, haz un innerHTML como bien haces en la siguiente función en otro DIV. y en cuanto a asignar valor a la propiedad VALUE del DIV, si luego eres capaz de recuperar ese valor estupendo, pero yo creo que es más fácil en un hidden.

saludos.
  #6 (permalink)  
Antiguo 07/07/2011, 05:18
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 1
Respuesta: onclick pasar variable javascript a php

Gracias de nuevo. Parece que me voy acercando a la solución.
Lo que dices parece ser lógico pero tengo un problema. Cuando pongo la línea document.write(valor); al darle click, en vez de mostrar el texto, muestra el "valor" y se queda pillada la página leyendo contínuamente.

Por otro lado he resuelto el conflicto que parecía haber con las dos acciones en el onclick ya que he metido todo en el script de la cabecera. así solo llamo a un script en vez de a dos. Es decir:
<script>
function mostrar(enla) {
obj = document.getElementById('oculto');
obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';
enla.innerHTML = (enla.innerHTML == '') ? 'Ver Telefono del anunciante' : '';
var valor;
valor=4;
document.getElementById('tu_hidden').value;
document.write(valor);
}
</script>

si le quito document.write(valor); va bien pero no recoge la variable, pero si lo pongo se queda pillado. ¿Alguna idea?. Gracias
  #7 (permalink)  
Antiguo 07/07/2011, 05:27
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: onclick pasar variable javascript a php

debajo de
<a href="#" onClick=....
pon un <div id="un_div"></div>

y en vez de
document.write(valor);
pones
document.getElementById('un_div').innerHTML = valor;

otra cosa. Coges el value de tu_hidden, pero no le asignas el valor:
document.getElementById('tu_hidden').value = valor; //debería ser así

y con eso, ya puedes usar el objeto hidden en PHP porque ya tiene el valor asignado.

saludos.
  #8 (permalink)  
Antiguo 07/07/2011, 07:00
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 1
Respuesta: onclick pasar variable javascript a php

Vale. He hecho los cambios y me queda así:

<head>
<script>
function mostrar(enla) {
obj = document.getElementById('oculto');
obj.style.display = (obj.style.display == 'block') ? 'none' : 'block';
enla.innerHTML = (enla.innerHTML == '') ? 'Ver Telefono del anunciante' : '';
var valor;
valor=4;
document.getElementById('un_div').innerHTML = valor;
document.getElementById('tu_hidden').value = valor;
}
</script>
</head>
<body>
<a href="#" onClick="mostrar(this); return false" />
<div id="un_div"><input type="hidden" id="tu_hidden" value="4" /></div>
<div id="show">Ver Telefono del anunciante</div></a>
<div id="oculto" style="display:none">Tlf. 902000000</div>
<?php
$valor = "<script> document.write(valor) </script>";
if ($valor==4) {echo 'Se ha hecho click y la varible vale = '.$valor;}
else {echo 'No se ha hecho click aún y valor vale cero'; }
?>
</body>

Pero sigue sin funcionar. Sigo sin poder recoger la variable de javascript

Etiquetas: onclick, php
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:12.