Cómo pasar el valor de la variable php a jquery

3 minutos de lectura

avatar de usuario de user1592380
usuario1592380

Tengo una variable php:

$name_of_current_page

que tengo disponible en mi opinión, y quiero que el valor esté disponible para jquery. ¿Es la mejor manera de hacerlo como la siguiente?

$(document).ready(function () {
            var current page = "<?php echo $name_of_current_page; ?>" ;

});

  • Sí. Al menos la más sencilla. Podría complicar esto si quisiera haciendo una solicitud AJAX al servidor para obtener los datos y luego cargando su variable de esa manera.

    – Michael Arroz

    5 de junio de 2013 a las 18:04


  • quizás no sea el mejor, pero funciona bien 🙂

    – PiLHA

    5 de junio de 2013 a las 18:05

  • posible duplicado de Cómo pasar una variable de PHP a Javascript

    –Michael Irigoyen

    6 de junio de 2013 a las 1:53

avatar de usuario de tftd
tftd

Realmente depende de si está utilizando algún tipo de motor de plantilla.

  1. Si está utilizando PHP simple, la única opción para usted es echo La variable:

    var current page = "<?php echo $your_var; ?>";
    
  2. Ramita motor:

    var current page = "{{ your_var }}";
    
  3. Sabelotodo y LluviaTPL motores:

    var current page = "{$your_var}";
    

Como puedes ver, hay otras formas. Todos ellos funcionan bien. Realmente depende de cómo le gustaría escribir y organizar su código. Yo personalmente uso Twig y lo encuentro realmente fácil, rápido y sencillo.

Además, como han señalado otros, puede hacer llamadas AJAX al servidor y obtener las variables de esa manera. Encuentro ese método lento, ineficiente e inseguro. Si elige este método, publicará solicitudes en un script. Todo el mundo podrá enviar/recibir solicitudes a ese script, lo que abre sus puertas a algunos bots y ataques DoS/DDoS.

  • Decir que usar AJAX abre las puertas a los bots y DoS es similar a decir que poner cualquier cosa en la web abre las puertas. Aunque de hecho, esto es cierto, hay muchas razones para usar AJAX para extraer datos en javascript. Cada sitio principal, IDK como Google, Facebook, et al. Haz esto. Poner un index.php simple con lo abre a ataques DoS. Si su servicio web está diseñado correctamente, entonces no necesita preocuparse (tanto) de que alguien obtenga sus datos.

    – Michael Arroz

    5 de junio de 2013 a las 19:03


  • @MichaelRice no me malinterprete: usar AJAX es genial. Pero plantea algunos problemas. Por lo tanto, debe usarse sabiamente. Y comparar Google, Facebook, etc. con probablemente un sitio pequeño a mediano es incorrecto. Google puede permitirse el lujo de tener esos servicios públicos, porque tienen recursos de sistema ilimitados y pueden manejar bots/DoS/DDoS de un vistazo, mientras que los sitios pequeños y medianos simplemente se desconectan.

    – tftd

    5 de junio de 2013 a las 19:11


variable página actual = “” ;

No creo que puedas tener espacios en una variable. (Podría estar equivocado).

De todos modos, para simplificar su código, lo he vuelto a hacer ligeramente.

$name_of_current_page = "HomePage";

Y para el Javascript;

var currentPage = "<?= $name_of_current_page; ?>";

Eso debería ser.

  • Puede tener espacios en blanco en sus variables. Excepto por las etiquetas php, esta es la forma correcta. Es mejor que no uses etiquetas cortas con php. En lugar de “=" use "

    -Rens Tillmann

    5 de junio de 2013 a las 18:12


  • @RensTillmann Algo de lo que he encontrado indica que son las etiquetas php cortas (<? y ?>) que se están eliminando, mientras que breve eco etiquetas (<?= y ?>) se hospedan. ¿Tiene un enlace a un recurso oficial?

    – Izkatá

    5 de junio de 2013 a las 18:19

  • Correcto, no leí la fuente lo suficientemente bien: php.net/~derick/meeting-notes.html – (Desde PHP 5.4.0, = SIEMPRE está disponible)

    -Rens Tillmann

    5 de junio de 2013 a las 19:02


  • @RensTillmann Gracias por aclararme eso. No sabía que podías tener espacios en Javascript a var. :PAGS

    – Dhamesh Makwana

    5 de junio de 2013 a las 20:01

document.title debería darle lo que necesita … cosas como esta consultan el DOM o Ajax imho.

Me parece mejor separar las capas y no mezclar la presentación y el controlador con el código html/php salpicado.

  • $name_of_current_page no tiene que significar document.title.

    – furas

    5 de junio de 2013 a las 18:10

  • @furas, ¿qué más podría significar?

    – Zach Leighton

    5 de junio de 2013 a las 18:14

  • <h1>name_of_current_page</h1> o se puede utilizar en muchas otras etiquetas como title="..." o alt=".." por algunas razones de SEO;)

    – furas

    5 de junio de 2013 a las 18:15


  • Gracias, pero en mi caso no es el título de la página.

    – usuario1592380

    6 de junio de 2013 a las 15:18

En primer lugar, lo que pregunta es una forma normal de completar el código del lado del cliente, pero este se cargará en la carga de la página, si desea ejecutarlo en vivo una vez que se cargue la página, debe usar ajax, porque es la forma en que se comunicará con los scripts del lado del servidor, no es posible que jquery o javascript carguen los php vars en vivo una vez que se haya cargado la página

¿Ha sido útil esta solución?