Posteado por: comentalo | Junio 27, 2007

Pasar variables de PHP a Javascript

Anduve quemandome la cabeza de como pasar variables de PHP a Javascript porque estoy haciendo unos combos dinámicos para la página de fut, y hay varias maneras de hacerlo, pero yo quería pasar arreglos (array) y descubrí una función en phpcs.com, la cual probé, me convenció y la uso, aqui se las comparto.

function php2js ($var) {

    if (is_array($var)) {
        $res = “[";
        $array = array();
        foreach ($var as $a_var) {
            $array[] = php2js($a_var);
        }
        return “[" . join(",", $array) . "]“;
    }
    elseif (is_bool($var)) {
        return $var ? “true” : “false”;
    }
    elseif (is_int($var) || is_integer($var) || is_double($var) || is_float($var)) {
        return $var;
    }
    elseif (is_string($var)) {
        return “\”" . addslashes(stripslashes($var)) . “\”";
    }

    return FALSE;
}

Y aqui un ejemplo de un PHP

<?php
$tab = array(1, 2, array(3, 4), 5, “salut”, True);
$js = php2js($tab); // [1,2,[3,4],5,’salut’,true]
?>
<script language=”JavaScript”>
var tab = <?php echo $js; ?>;
alert(tab);
</script>


Respuestas

  1. uo! Gracias por el código. No habia encontrado aun la manera de hacer pasar arrays a javascript

  2. SI, yo tambien estuve batallando pero encontré la solución y decidí ponerlo para que sirva a los demas, luego pondré mas tips que encuentro

  3. si bueno ahorras tener que pasar las variables de una por una pero , yo buscaba que javascript recibiera estos datos tambien como un arreglo y con el resultado , resulta que no puedo construir un arreglo …

  4. No se alguien ustede me puede ayudar en el siguiente problema de combos dinamicos se que es el siquiente :todo funciona a ña perfeccion que el detalle que al agregar los datos a la base de datos mysql no ingresa lo paises ni los estados .. si no que numeros…le agradesco que alguien me ayudar a como ingresar los datos correctamente este lleva un poco de ajax ocupa la clase mootools

    index.php

    Combos Dependientes con Ajax

    window.addEvent(’domready’, function() {

    $(’combo’).addEvent(’change’,
    function(){
    new Ajax(”script.php”, {method: ‘post’, update: $(’log’), data: $(’form’)}).request();
    }
    );

    });

    Combos Dependientes con Ajax

    Mexico
    EUA

    DF
    Monterey

    scrip.php
    <?php

    extract($_POST);

    if(@$pais==1)
    echo ‘

    DF
    Monterey

    ‘;

    if(@$pais==2)
    echo ‘

    Alaska
    Texas

    ‘;

    ?>

  5. Hola no se si alguién me oueda enviar un código completo como el que muestras en tu página

    Gracias

  6. gracias muchas gracias eso ayuda bastante

  7. woow, igual quebrandome la cabeza mas de una semana para pasar un arreglo de php a js y nada hasta que vi esta funcion, ahora a ver komo funciona bien, gracias

  8. Bueno.., me parece que la manera mas sencilla de hacerlo, es simplemente haciendo uso de las funciones de php.., permitiendonos convertir el vector original en una cadena, separamos las posiciones del vector por un caracter especial (sea “,” p. ejem), ahora sí podremos pasar la data por parametro a javascript, desde donde con la función split() obtendremos nuevamente nuestro arreglo y podremos facilmente reccorerlo con algun bucle.. suerte!


Dejar una respuesta

Su respuesta:

Categorías