Foros del Web » Programando para Internet » Javascript » Frameworks JS »

pasar variable de php en funcion javascript

Estas en el tema de pasar variable de php en funcion javascript en el foro de Frameworks JS en Foros del Web. hola que tal, estoy implementando un autocompletado y quisiera mandar una variable de php dentro de esta funcion... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php ...
  #1 (permalink)  
Antiguo 20/09/2012, 01:29
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Pregunta pasar variable de php en funcion javascript

hola que tal, estoy implementando un autocompletado y quisiera mandar una variable de php dentro de esta funcion...

Código PHP:
Ver original
  1. <?php
  2. $id=$_GET['id']; //la recibo desde otro php
  3. ?>
  4. <html>
  5. <head>
  6. <script type="text/javascript">
  7. $().ready(function() {
  8.     $("#partida_presupuestal").autocomplete("pagina.php", {
  9.         size: 65,
  10.         matchContains: true,
  11.         //mustMatch: true,
  12.         //minChars: 0,
  13.         //multiple: true,
  14.         //highlight: false,
  15.         //multipleSeparator: ",",
  16.         selectFirst: false
  17.     });
  18. });
  19. </script>
  20.  
  21. </head>
  22. .
  23. .

lo estoy intentando asi, pero no se si es correcto porque no me funciona o no se que ande mal:
Código HTML:
Ver original
  1. <script type="text/javascript">
  2. $().ready(function() {
  3.     $("#partida_presupuestal").autocomplete("pagina.php?id=<? echo $id; ?>", {
  4.         size: 65,
  5.         matchContains: true,
  6.         //mustMatch: true,
  7.         //minChars: 0,
  8.         //multiple: true,
  9.         //highlight: false,
  10.         //multipleSeparator: ",",
  11.         selectFirst: false
  12.     });
  13. });
  #2 (permalink)  
Antiguo 20/09/2012, 06:53
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: pasar variable de php en funcion javascript

Javascript no puede acceder a las variables de php.

Podrías colocar la variable php en un elemento html (un input:hidden si estas usando un formulario)
Código HTML:
Ver original
  1. <input id="mivariable" type="hidden" value="<?php echo $mivariable; ?>" />
  2. <span id="tuotravar" style="display:none;"><?php echo $tuotravar; ?></span>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
de modo que cuando termine la ejecución quede algo así...
Código HTML:
Ver original
  1. <input id="mivariable" type="hidden" value="valor de tu variable" />
  2. <span id="tuotravar" style="display:none;">otro valor</span>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
y luego (ya que estas con jquery) puedas acceder con .val() o .text()
Código CSS:
Ver original
  1. alert($("#mivariable").val());
  2. alert($("#tuotravar").text());
Esto de enredar código de varios lenguajes se conoce como "codigo spaghetti" y está 100% desaconsejado si tu intención es tener un código legible y mantenible. Si por el contrario, solo quieres salir del paso, pues adelante :D

Saludos.
  #3 (permalink)  
Antiguo 20/09/2012, 06:54
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: pasar variable de php en funcion javascript

recuerda que PHP se ejecuta en el servidor, por lo tanto lo que estás haciendo es dumpear el resultado de una variable PHP al codigo JS del autocompletar que lo vuelve a enviar a PHP como parámetro GET , es decir, no estás logrando nada.

el detalle según deduje es que quieres pasar valores adicionales a la data del autocompletar ¿no?, en ese caso depende de como el plugins espere esos datos, por lo que tendrás que revisar su API para ver si permite datos adicionales, o al menos un callback para hacer otra petición AJAX, cosa que no me agrada pero cumple con tu requerimiento
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 20/09/2012, 08:44
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Pregunta Respuesta: pasar variable de php en funcion javascript

Muchas gracias por su atencion... bueno pues estoy ocupando el jQuery Autocomplete plugin 1.1
dejo el codigo por si me pueden ayudar.

PHP Donde tengo mi formulario, ahi recojo la variable que quiero mandar..."$id"
Código PHP:
Ver original
  1. <?php
  2. $id=$_GET['id'];
  3. ?>
  4. <html>
  5. <head>
  6. <script type="text/javascript" src="js/jquery.js"></script>
  7. <script type='text/javascript' src='js/jquery.autocomplete.js'></script>
  8. <script type="text/javascript">
  9. $().ready(function() {
  10.     $("#proyecto").autocomplete("pagina.php", {
  11.         size: 65,
  12.         matchContains: true,
  13.         //mustMatch: true,
  14.         //minChars: 0,
  15.         //multiple: true,
  16.         //highlight: false,
  17.         //multipleSeparator: ",",
  18.         selectFirst: false
  19.     });
  20. });
  21. </script>
  22. </head>
  23. <body>
  24. <form>
  25. <input type="text" name="proyecto" id="proyecto" size=65>
  26. </form>
  27. </body>
  28. </html>

Este es otro archivo php donde quiero recoger la variable para usarla en una consulta.
Código PHP:
Ver original
  1. <?php
  2. include('conexion.php');
  3. $id=$_GET['id']; //AQUI RECOGERLA
  4. $q = strtolower($_GET["q"]);
  5. if (!$q) return;
  6.  
  7. $sql = "SELECT DISTINCT proyecto, ... FROM table WHERE proyecto='$id' ....";
  8. $rsd = mysql_query($sql);
  9. while($rs = mysql_fetch_array($rsd)) {
  10.     $resul = $rs['proyecto'];
  11.     echo "$resul\n";   
  12. }
  13. ?>

aca dejo el enlace del archivo js ya que es muy largo para postearlo...
http://crbcentral.com/js/jquery.autocomplete.js

Etiquetas: funcion, html, javascript, php, select, variables
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 08:04.