Foros del Web » Programando para Internet » Javascript »

Pasar una variable php a una funcion javascript

Estas en el tema de Pasar una variable php a una funcion javascript en el foro de Javascript en Foros del Web. Buenos días, como siempre muchas gracias por vuestra ayuda que nos da la vida a la gente que trabajamos con la programación web. Tengo el ...
  #1 (permalink)  
Antiguo 03/09/2014, 00:43
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Pasar una variable php a una funcion javascript

Buenos días, como siempre muchas gracias por vuestra ayuda que nos da la vida a la gente que trabajamos con la programación web.

Tengo el siguente código:

Código:
<?php
		echo ("<a href= 'javascript:boton_curso('".$course."')' style='color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;' class='link11' id='link11' ); >");	?>";
Mi problema viene con el parámetro de la función boton_curso. Se trata de una variable que necesita la función y que obtengo de una base de datos. Sé que hago algo mal porque si a la función no le paso ningún parámetro, funciona perfectamente.


Por favor, ¿alguna idea? Muchas gracias
  #2 (permalink)  
Antiguo 03/09/2014, 01:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 345
Antigüedad: 16 años, 8 meses
Puntos: 21
Respuesta: Pasar una variable php a una funcion javascript

Código PHP:
Ver original
  1. <?php
  2.         echo ("<a href= 'javascript:boton_curso(\'".$course."\')' style='color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;' class='link11' id='link11' ); >");  ?>";

Prueba este código. El error probablemente aparece porque utilizas comillas simples para el atributo href y para el parámetro de la función
__________________
----
http://www.mascodigo.com
  #3 (permalink)  
Antiguo 03/09/2014, 01:19
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Acabo de probarlo y sigue sin funcionar :S muchas gracias por tu ayuda de verdad. Si por ejemplo hago esto:
Código:
<?php
        echo ("<a href= 'javascript:boton_curso(11001)' style='color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;' class='link11' id='link11' ); >");  ?>";
Funciona a la perfección. Si llegado el punto, tampoco necesitaría si quiera hacer la consula a la base de datos. Tan sólo pasarle una variable iterador que vaya de 1 a n.

Gracias!
  #4 (permalink)  
Antiguo 04/09/2014, 02:22
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Veo que cuesta encontrar la solución...
Lo que necesito es crear una lista de vinculos, con el contenido obtenido de una consulta a una base de datos. Y en función de uno de los valores obtenido para cada vínculo, se ejecuta una sentencia javascript.

Código:
$ident= 21;										  
$resultado = mysql_query( "SELECT `COURSE_NAME`,`IDLINK`,`CURSO` FROM `cursos_training` WHERE `FLOWROLE`=" .$ident);

while ($fila=mysql_fetch_array($resultado)){
$numCurso = $fila['CURSO'];
$nombre = $fila['COURSE_NAME'];
$course = $fila['IDLINK']; 
$course = "\"" .$course ."\"";
echo ("<a href='javascript:void(0);' class='link12' id='link12' style='color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;'>" .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>");
}
Lo que necesitaría sería, que cada botón que se crea, ejecutase esta sentencia:

$('#contentFlow').load('curso1_info?id= AQUÍ VA EL VALOR DE $course OBTENIDO PARA CADA VINCULO ' );

¿Alguna idea de alguna alternativa?
Muchas gracias!!!
  #5 (permalink)  
Antiguo 04/09/2014, 06:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar una variable php a una funcion javascript

prueba esto a mi me funciono .. .
Código:
<?php
$course = "nne";
echo '<a href="" onclick=\'boton_curso("' . $course . '")\' style="color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;" class="link11" id="link11">algo</a> ';

?>
tu me cuentas
  #6 (permalink)  
Antiguo 04/09/2014, 10:37
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Gracias por tu ayuda, pero ni aun haciendo esto:

echo ("<a href='' onclick='boton_curso(".$course.")'>" ."</a>");

consigo nada :(

Estoy desesperado!!
  #7 (permalink)  
Antiguo 04/09/2014, 11:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Pasar una variable php a una funcion javascript

Hay que ver el html que generas y si el $course es número o cadena.

No puedes meter el onclick dentro del href.

echo no necesita paréntesis.


Yo prefiero encerrar los atributos html en comillas (dobles)

echo "<a href=\''\" onclick=\"boton_curso('$course')\"></a>";

o bien

echo '<a href=''" onclick="boton_curso(\''.$course.'\')"></a>';

o bien, si estás seguro que course es número:

echo '<a href=''" onclick="boton_curso('.$course.')"></a>';
  #8 (permalink)  
Antiguo 05/09/2014, 04:21
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Chicos, gracias por todo.

He conseguido que al hacer esto:

Código:
echo ("<a href='javascript:alert();' >" .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>");
Aparezca la ventana vacía en el navegador.

Ahora, si quiero introducir un mensaje en la ventana:

Código:
echo ("<a href='javascript:alert('hola hola');' >" .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>");
No consigo que aparezca en el explorador mas que el siguiente comando:

Código:
 javascript:alert(
y ahí se queda. Ponga lo que ponga no consigo meter una maldita frase y que salga por la ventana.

El siguiente paso es conseguir meter la expresion:

Código:
'javascript:$('#contentFlow').load('curso1_info.php?id=.$course.');
Por favor, ayuda!!
  #9 (permalink)  
Antiguo 05/09/2014, 06:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar una variable php a una funcion javascript

prueba cambiar las comillas que encierran toda la cadena en lugar de las dobles usa las simples como te pase mas arriba ...

y el echo puedes usarlo sin parentesis no es necesario...

sin aun ... continuan los problemas habria qeu mirar la configuracion del php.ini para ver si estan habilitas las comillas
  #10 (permalink)  
Antiguo 05/09/2014, 12:23
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

He conseguido el 75% del objetivo inicial:

Código:
'<a href=\"javascript:\$(\'#contentFlow\').load(\'curso1_info.php?id=11001\');\" class=\"link11\" id=\"link11\" style=\"color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;\">' .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>";
Ya solo me queda que el dato 11001 (en negrita) sea una variable php llamada ($course). ¿Un último empujón por favor?

Muuuuchas gracias por vuestra ayuda y vuestro trabajo!
  #11 (permalink)  
Antiguo 05/09/2014, 14:08
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Pasar una variable php a una funcion javascript

perdonen... pero se me hace mas sencilllo y facil de leer.. al la inversa..

Código:
<a href="javascript:void(0)" onclick="boton_curso('<?php echo $course;?> ');"></a>
espero te sirva...
  #12 (permalink)  
Antiguo 05/09/2014, 14:30
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Marcusaurelius no se trata de código javascript al que se le pasa una variable php. Sino que se trata código php, en el que va incluido código javascript a través de la instrucción echo.

Dentro de ese código javascript, necesitamos utilizar una variable php de nuevo.

Código:
<?php	$ident= 11;																   $resultado = mysql_query( "SELECT `COURSE_NAME`,`IDLINK`,`CURSO` FROM `cursos_training` WHERE `FLOWROLE`=" .$ident);													   
if ($fila = mysql_fetch_array($resultado)){															$numCurso = $fila['CURSO'];															$nombre = $fila['COURSE_NAME'];															$course = $fila['IDLINK']; 															$course = "\"" .$course ."\"";
echo '<a href=\"javascript:\$(\'#contentFlow\').load(\'curso1_info.php?id=11001\');\" class=\"course11\" id=\"course11\" style=\"color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;\">' .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>";		
?>";
Pero muchas gracias!!!

Última edición por manute71; 05/09/2014 a las 14:51
  #13 (permalink)  
Antiguo 05/09/2014, 17:20
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Pasar una variable php a una funcion javascript

dentro de apostrofes no debes usar slashes para comillas

echo ' hola \"mundo\"';//MAL

echo ' hola "mundo"';//bien


//$course = "\"" .$course ."\"";//no tiene sentido

tampoco tiene sentido concatenar esto ."<br>" ."</a>";


Código PHP:
Ver original
  1. echo '<a href="javascript:\$(\'#contentFlow\').load(\'curso1_info.php?id='.$course.'\');" class="course11" id="course11" style="color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;">' .nl2br($numCurso).' - ' .$nombre.'<br><br></a>';

o bien

Código PHP:
Ver original
  1. echo "<a href=\"javascript:\$('#contentFlow').load('curso1_info.php?id=$course');\" class=\"course11\" id=\"course11\" style=\"color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;\">" .nl2br($numCurso)." - $nombre <br><br></a>";

Por otro lado, el href es para seguir una liga, no para ejecutar una acción

Código PHP:
Ver original
  1. echo "<a onclick=\"\$('#contentFlow').load('curso1_info.php?id=$course');\" class=\"course11\" id=\"course11\" style=\"color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;\">" .nl2br($numCurso)." - $nombre <br><br></a>";

Finalmente, todo se resume a saber usar comillas en PHP, por lo que no es tema de javascript
  #14 (permalink)  
Antiguo 06/09/2014, 02:00
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Pasar una variable php a una funcion javascript

Hola ocp001a,

Perdona si me he liado con las comillas simples. Pero he ido probando todas las combinaciones posibles hasta que he dado con la sentencia correcta que el navegador conseguía entender.

Lo primero que pregunté en el hilo, era alguna idea para hacer lo siguiente:

- Tengo una serie de cursos en una bbdd. Ponte que hay 10 cursos para fontaneros, 40 para mecánicos y 13 para oficiales. (El número de cursos varía para cada perfil).

- Tengo un menú desplegable con los 3 perfiles. Al seleccionar un perfil, me aparece otro botón abajo, que contiene un menu desplegable con un enlace para cada curso de ese perfil.

Es decir MENU 1 (3 perfiles) -- "selecciono 1 perfil" -> FONTANERO -- cursos (y al pulsar sobre fontanero me aparece un enlace con el nombre de cada curso)

Yo he hecho lo siguiente:

1) Al seleccionar por ejemplo el perfil de FONTANERO:

Código:
 <script type="text/javascript">
$('#floatOper a.link11').click(function(){ 

var ul = document.getElementById("ULfloatFlowCursos"); // ULfloatFlowCursos es el div desplegable donde aparecen los cursos
ul.innerHTML = "";
ul.innerHTML += " <?php
$ident= 12;		
$resultado = mysql_query( "SELECT `COURSE_NAME`,`IDLINK`,`CURSO` FROM `cursos_training` WHERE `FLOWROLE`=" .$ident);
while ($fila = mysql_fetch_array($resultado)){
$numCurso = $fila['CURSO'];
$nombre = $fila['COURSE_NAME'];
$course = $fila['IDLINK']; 
$course = "\"" .$course ."\"";
echo ("<a href='javascript:void(0);' class='link12' id='link12' style='color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;'>" .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>");
}
?>";
});
A lo que voy, es que no veo otra manera de hacer una consulta en una base de datos al pulsar un botón, y que se genere un código html, con enlaces independientes para cada curso del tipo (<a href="javascript:$('#contentFlow').load('curso1_in fo.php?id=11001'>)

Por eso lo que intento es generar los enlaces directamente en el bucle while. Siendo en este caso 11001, el identificador de cada curso para cargar posteriormente, todos los campos del curso contenidos a su vez en la bbdd.

Muchas gracias!

Última edición por manute71; 06/09/2014 a las 02:05
  #15 (permalink)  
Antiguo 08/09/2014, 06:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 20
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Pasar una variable php a una funcion javascript

si todo esta envuelt en comillas simples lo mas facil seria
cortar el string concatenar la variable y seguir
Código:
'<a href=\"javascript:\$(\'#contentFlow\').load(\'curso1_info.php?id='.$course.'\');\" class=\"link11\" id=\"link11\" style=\"color:#FFF; font-size:25px; text-decoration:none; margin-bottom:40px;\">' .nl2br($numCurso)." - " .$nombre."<br>" ."<br>" ."</a>";
saludos

Etiquetas: 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




La zona horaria es GMT -6. Ahora son las 14:28.