Foros del Web » Programando para Internet » PHP »

En php pasar por argumento una variable javascript

Estas en el tema de En php pasar por argumento una variable javascript en el foro de PHP en Foros del Web. Me he quedado encallado y no sé como seguir. Tengo que pasar la dirección URL (guardada como variable php) como argumento de la función pressed ...
  #1 (permalink)  
Antiguo 05/07/2009, 21:32
 
Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 17 años, 3 meses
Puntos: 1
En php pasar por argumento una variable javascript

Me he quedado encallado y no sé como seguir. Tengo que pasar la dirección URL (guardada como variable php) como argumento de la función pressed (la del onclick), pero no lo hace bien y no me entra a la función onclick porque no sé como pasar los argumentos correctamente (o eso creo que es el fallo). He mirado en muchos foros y tal y no encuentro la dichosa manera de hacer que pase y poder ejecutarlo bien.

Código PHP

$url=$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
echo "<br> URL ".$url."<br><br>";
$numero= strpos ( $url, "activatedTitle");
$cadena= substr($url, 0, $numero);
if(!$cadena){
$cadena=$url;
}

$body .= "<form name=\"form1\" method=\"post\" action=\"\">";

if (!$activatedTitleCheckbox || $activatedTitleCheckbox=="on"){
$body .= "<input type=\"checkbox\" name=\"checkbox\" value=\"activatedTitle\" onClick=\"pressed(\".$cadena.'\')\" checked='checked'>Title Tags<br>";
}else if ($activatedTitleCheckbox=="off") {
$body .= "<input type=\"checkbox\" name=\"checkbox\" value=\"activatedTitle\" onClick=\"pressed(\".$cadena.'\')\">Title Tags<br>";
}


Y luego el Javascript está declarado así:

function pressed(cadena) {
alert(“Hola”);
//Aqui utilizo la variable cadena, pero no pongo el código
}


al hacer onclick me debería abrir una alerta y no lo hace, supongo que será porque en la función pressed no lo hago bien, pero no entiendo porqué ya que he probado todo lo habido y por haber. Gracias de antemano!
  #2 (permalink)  
Antiguo 05/07/2009, 21:46
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: En php pasar por argumento una variable javascript

en el onclick estas pasando doblemente las comillas doble. Tienes que declarar una con comillas sencillas y una con comillas doble.
  #3 (permalink)  
Antiguo 05/07/2009, 23:06
 
Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: En php pasar por argumento una variable javascript

Gracias por la respuesta, pero no he acabado de entenderte, he probado varias combinaciones (esta es una de las muchas que he encontrado en los otros foros y que se suponía que funcionaba)

Quieres decir que es esto:
$body .= "<input type=\"checkbox\" name=\"checkbox\" value=\"activatedTitle\" onClick=\"pressed($cadena.'\')\">Title Tags<br>";

Perdona, pero la verdad esque ya te digo que esta es una solución que encontré y no entiendo porque se pone '\' ni nada de eso por eso no he entendido esactamente lo que me comentabas, de todas formas muchas gracias! un saludo
  #4 (permalink)  
Antiguo 05/07/2009, 23:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: En php pasar por argumento una variable javascript

COMO: usar las comillas bien
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/07/2009, 08:43
 
Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: En php pasar por argumento una variable javascript

Vale, por lo que he entendido sería algo así entonces??:

$body .= "<input type=\"checkbox\" name=\"checkbox\" value=\"activatedTitle\" onClick=\"pressed('{$cadena}')\" checked='checked'>Title Tags<br>";

Ahora prueba a ver que tal, muchas gracias por vuestra ayuda!!! Mil gracias, voy a probar a ver si me funciona y ya os diré.

Última edición por pedrojo; 06/07/2009 a las 08:59
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 11:00.