Pasar funcion PHP a javascript

Iniciado por blaknez root, 27 Julio 2014, 17:27 PM

0 Miembros y 1 Visitante están viendo este tema.

blaknez root

Saludos a todo tengo la siguiente función en PHP
Código (php) [Seleccionar]
function precio_dot($price, $sep='.') {
    //Devuelve el valor coma separada
    if ($sep=='') { $sep='.'; }
    $price = strrev($price);
    $c_name = str_split($price, 1);
    $n_name = '';
    $i = 0;
    foreach ($c_name as $word) {
      if ((($i % 3)==0)&&($i>0)) {
        $n_name .= $sep;
      }
      $n_name .= $word;
      $i += 1;
    }
    return strrev($n_name);
  }

Hasta ahí todo bien :D pero mi problema viene querer pasarla a javascript lo intente de esta manera pero no lo he conseguido

Código (javascript) [Seleccionar]
function strrev(s){ return s.split('').reverse().join(''); }

function precio_js($price, $sep='.') {
//Devuelve el valor coma separada
if (sep=='') { sep = '.'; }
price = strrev(price);
c_name =str.split(price,1);
n_name = '';
    var i = 0;

for(i;i<=c_name.length;i++){
if(((i % 3)==0) && (i>0)){
n_name = name+"."+sep;

} //fin If
}

return strrev(n_name);
}



Alguien sabe cual es el problema? de antemano gracias.


MinusFour

No estoy muy seguro del funcionamiento pero los argumentos de la función precio_js están mal. No puedes usar esa manera para establecer los valores por defecto de los argumentos.

Una manera muy sencilla de hacer esto sería:

Código (javascript) [Seleccionar]

function precio_js(price, sep){
sep = sep || '.';
}


El único inconveniente es que si estás pasando valores false por sep entonces se ponen valores por default.

Valores false en javascript:

"undefined", null, NaN, 0, ""

Si alguna vez pasas esos valores por sep, sep va a tomar el '.' en lugar de ese valor.

str_split de php es diferente a str.split de javascript. str_split convierte el string en un arreglo donde cada elemento es de longitud del segundo parametro (1). Mientras que str.split, funciona como php explode. Puedes usar:

Código (javascript) [Seleccionar]

str.split("");


Forza a javascript a romper el string en caracteres.

Y si estás pasando valores falsey atraves de sep tienes que usar algo como esto:

Código (javascript) [Seleccionar]

sep = typeof sep !== 'undefined' ? sep : '.';