Página 1 de 1

Problema con JS

Publicado: 18 May 2009, 18:51
por Manolo
Hola a todos. Resulta que cuando entré en meneame ví que, cuando entras a tu cuenta, el sistema te saluda en un idioma diferente cada vez que actualizas la página. He intentado emularlo en JS, pero no le veo el fallo. ¿Y vosotros? Son 30 saludos en total :twisted:

Código: Seleccionar todo

<html>
<head>
<script type="text/javascript">
function saludarIdioma()
{
var num=Math.round(Math.floor(Math.random()*30-Math.random()*1));
if(num<0) {return num}
else
if(num=="0") {document.contenedorSaludo.innerHTML="¡Hola!";
document.f1.contenedorSaludo.title="HHD Blog te saluda en español"}
else
if(num=="1") {document.contenedorSaludo.innerHTML="Hi!";
document.f1.contenedorSaludo.title="HHD Blog te saluda en inglés"}
else
if(num=="2") {document.contenedorSaludo.innerHTML="Hallo";
document.f1.contenedorSaludo.title="HHD Blog te saluda en alemán"}
else
if(num=="3") {document.contenedorSaludo.innerHTML="Dobrý den";
document.f1.contenedorSaludo.title="HHD Blog te saluda en eslovaco"}
else
if(num=="4") {document.contenedorSaludo.innerHTML="Hej";
document.f1.contenedorSaludo.title="HHD Blog te saluda en sueco"}
else
if(num=="5") {document.contenedorSaludo.innerHTML="Namaste";
document.f1.contenedorSaludo.title="HHD Blog te saluda en hindú"}
else
if(num=="6") {document.contenedorSaludo.innerHTML="Ahn nyeong";
document.f1.contenedorSaludo.title="HHD Blog te saluda en coreano"}
else
if(num=="7") {document.contenedorSaludo.innerHTML="Goedendag";
document.f1.contenedorSaludo.title="HHD Blog te saluda en holandés"}
else
if(num=="8") {document.contenedorSaludo.innerHTML="Zdravstvuyte";
document.f1.contenedorSaludo.title="HHD Blog te saluda en ruso"}
else
if(num=="9") {document.contenedorSaludo.innerHTML="Mingalarbar";
document.f1.contenedorSaludo.title="HHD Blog te saluda en birmano"}
else
if(num=="10") {document.contenedorSaludo.innerHTML="Merhaba";
document.f1.contenedorSaludo.title="HHD Blog te saluda en turco"}
else
if(num=="11") {document.contenedorSaludo.innerHTML="Chao";
document.f1.contenedorSaludo.title="HHD Blog te saluda en vietnamita"}
else
if(num=="12") {document.contenedorSaludo.innerHTML="Kumusta Ka";
document.f1.contenedorSaludo.title="HHD Blog te saluda en filipino"}
else
if(num=="13") {document.contenedorSaludo.innerHTML="Saluton";
document.f1.contenedorSaludo.title="HHD Blog te saluda en esperanto"}
else
if(num=="14") {document.contenedorSaludo.innerHTML="Czesc";
document.f1.contenedorSaludo.title="HHD Blog te saluda en polaco"}
else
if(num=="15") {document.contenedorSaludo.innerHTML="Aloha";
document.f1.contenedorSaludo.title="HHD Blog te saluda en hawaiano"}
else
if(num=="16") {document.contenedorSaludo.innerHTML="Góðan dag";
document.f1.contenedorSaludo.title="HHD Blog te saluda en islandés"}
else
if(num=="17") {document.contenedorSaludo.innerHTML="Baagunnara";
document.f1.contenedorSaludo.title="HHD te saluda en telugu"}
else
if(num=="18") {document.contenedorSaludo.innerHTML="Dobriy ranok";
document.f1.contenedorSaludo.title="HHD Blog te saluda en ucraniano"}
else
if(num=="19") {document.contenedorSaludo.innerHTML="Wa uhala po, Meme?";
document.f1.contenedorSaludo.title="HHD Blog te saluda en oshikwanyama"}
else
if(num=="20") {document.contenedorSaludo.innerHTML="Kaixo";
document.f1.contenedorSaludo.title="HHD Blog te saluda en euskera"}
else
if(num=="21") {document.contenedorSaludo.innerHTML="Moïen";
document.f1.contenedorSaludo.title="HHD Blog te saluda en luxemburgués"}
else
if(num=="22") {document.contenedorSaludo.innerHTML="Hallå";
document.f1.contenedorSaludo.title="HHD Blog te saluda en skånska"}
else
if(num=="23") {document.contenedorSaludo.innerHTML="Ya'at'eeh";
document.f1.contenedorSaludo.title="HHD Blog te saluda en navajo"}
else
if(num=="24") {document.contenedorSaludo.innerHTML="Merhba";
document.f1.contenedorSaludo.title="HHD Blog te saluda en maltés"}
else
if(num=="25") {document.contenedorSaludo.innerHTML="Salamaleikum";
document.f1.contenedorSaludo.title="HHD Blog te saluda en senagalés"}
else
if(num=="26") {document.contenedorSaludo.innerHTML="Gñap!";
document.f1.contenedorSaludo.title="HHD Blog te saluda en gñapés"}
else
if(num=="27") {document.contenedorSaludo.innerHTML=".... --- .-.. .- ";
document.f1.contenedorSaludo.title="HHD Blog te saluda en código morse"}
else
if(num=="28") {document.contenedorSaludo.innerHTML="01001000 01101111 01101100 01100001";
document.f1.contenedorSaludo.title="HHD Blog te saluda en binario"}
else
if(num=="29") {document.contenedorSaludo.innerHTML="SG9sYQ==";
document.f1.contenedorSaludo.title="HHD Blog te saluda en BASE64"}
else {document.contenedorSaludo.innerHTML="Ciao";
document.f1.contenedorSaludo.title="HHD Blog te saluda en italiano"
}
}
</script>
<title>Saludo</title>
</head>
<body onload=saludarIdioma()>
<form name="f1">
<div title="" id="contenedorSaludo"></div>
</form>
</body>
</html>

Re: Problema con JS

Publicado: 18 May 2009, 19:57
por elQuique
Yo lo haria mas sencillo:

Cargas un Array = todas las frases.

var num=Math.round(Math.floor(Math.random()*30-Math.random()*1));

document.f1.contenedorSaludo.title=array[num];

y te ahorras todo ese chorro de ifs. Incluso el 30 lo puedes reemplazar por un count de los elementos del array, por si agregas o quitas frases.

Luego debes cuidar las partes como: document.f1.contenedorSaludo.title

ya que no todos los navegadores refieren de la misma forma, a veces mejor usar en su lugar la función getElementByID indicándoles el nombre del elemento.

pd: si tienes posibilidad, mejor hacerlo en el PHP o del lado del server, y no hacer esto del lado del cliente con JavaScript.

Re: Problema con JS

Publicado: 19 May 2009, 11:02
por Manolo
Muchas gracias por la ayuda Jorge, eres un excelente webmaster. Te lo digo porque en otros foros la gente no parece darse cuenta de que solo soy un principiante. Tú, en cambio lo explicas perfectamente. Así que muchísimas gracias por la ayuda, lo he hecho con un array. Este script me tenía loco :mrgreen:
PD: ¿Por qué es mejor hacerlo con PHP? :?

Re: Problema con JS

Publicado: 19 May 2009, 12:48
por sloy
Como elQuique ya te ha contestado lo primero, omito mi respuesta que la suya es seguro mucho mejor.

En cuanto a por qué usar PHP, puede haber varias razones. Si se puede hacer algo indistintamente con los dos lenguajes, personalmente prefiero con éste.
Es más fiable, ya que el JS lo puede interpretar cada navegador como le da la gana e incluso se puede manipular en cierta medida (véase FireBug). Con PHP te aseguras de que funcione como quieres. Y si no quieres que nadie vea el código, en PHP no es posible (pero hay que compartir, eh ;) ).

Son algunas cosas que me vienen a la cabeza, pero seguro que hay más. Que conste que no quiero desprestigiar a Javascript, me parece un lenguaje muy útil y me encanta. Pero teniendo PHP....

Re: Problema con JS

Publicado: 19 May 2009, 12:54
por Manolo
sloy, muchas gracias por tu clara y pronta respuesta :)
Mi único problema con PHP es que no se instalar Apache y PHP correctamente para 'entrenar'. Y eso que hace poco me compré el libro 'PHP para todos'
¡15€ tirados a la basura! :(
Si encontrase algún tutorial claro...

Re: Problema con JS

Publicado: 19 May 2009, 17:19
por Alejandro
Tener al elQuique contestando este tipo de dudas es todo un provilegio, es un programador con años de experiencia.
Mi único problema con PHP es que no se instalar Apache y PHP correctamente para 'entrenar'.
Puedes probar www.wampserver.com/en/ o www.appservnetwork.com estos programas te permiten cargar todo eso localmente, no necesitarás un servidor online para probar cosas :)

Re: Problema con JS

Publicado: 19 May 2009, 17:47
por elQuique
Quitz en parte por lo que dice sloy.

Pero básicamente mi forma de pensar las cosas es que el cliente (el navegador y usuario) deberían trabajar lo menos posible, por tanto el servidor debería dar todo lo más digerido posible.

Paso en limpio, si tu quieres:
- una frase rotando en el navegador: no te queda otra que javascript (o ajax) ya que en el navegador es donde debe rotar
- si tu quieres cada vez que se refresca cambiar la frase: es mejor usar PHP, porque ??

Bueno, en realidad tu html final en el navegador es un texto, 1 frase, entonces para que enviar todo un código javascript y 30 frases para elegir una sola ?

Mejor elegir esa frase en el servidor y enviar el código html con esa sola frase.

Menos código html, menos lentitud, más velocidad, menos tráfico.

Además como dijimos ya el JavaScript suele no interpretarse de la misma forma en diferentes navegadores.

En cuanto a practicar PHP, bueno hay varias formas:
- te consigues un server gratis o gratuito
- te instalas php en tu Windows con IIS
- te instalas el wamp o el appserver

En mi caso prefiero appserver porque es el que no me rompe el IIS que uso para .net, además se instala sin molestar todo lo asp de mi windows. Por otra parte las herramientas que instalas son las mismas que tienes en un hosting linux con cpanel (php, apache, phpmyadmin, mysql) y además se instala sin mucha cosas extrañas y queda sencillo acceder al config de apache, o php.ini para agregar algún modulo como PEAR, o ModRewrite (para urls amigables), entre otras, si es que son necesarias.

Instalando AppServ, puedes bajar e instalar sin ningún cambio, ya lo he probado estos: phpbb, wordpress, drupal. Solo si quieres urls amigables activas modrewrite y listo.

Instalar PHP en Windows IIS

Instalar AppServ (Apache, MySQL, PHP)

Spamloco, no exageres pues :P

Re: Problema con JS

Publicado: 20 May 2009, 10:05
por chitoso
Nunca probe Appserver. Yo uso XAMPP (en linux y win) hace tiempo y es excelente. Tambien probe Zend Server, que salio hace poco y funciona muy bien.

Solo queria aportar esas alternativas que son muy recomendables.
Saludos

Re: Problema con JS

Publicado: 21 May 2009, 16:58
por Manolo
Muchas gracias, especialmente a SpamLoco por los dos programas y a chitoso también por la recomendación.
Una pregunta para nuestro programador estrella, elQuique (al que también agradezco enormemente la ayuda) :) ¿Ambos programas, solo basta con instalarlos y ya se puede programar en PHP, sin más?
Lo digo porque ahora estoy usando una conexión 3G que vá bastante lento... y tarda dos horas en descargarse

Re: Problema con JS

Publicado: 21 May 2009, 17:50
por Alejandro
Esos programas te emulan un servidor dentro de tu PC, entonces puedes ir probando lo que hagas directamente ahí... sin necesidad de estar subiendo los archivos a un servidor online. Esa sería la utilidad que tienen.

Re: Problema con JS

Publicado: 21 May 2009, 18:12
por Manolo
Me refiero a que si no hay que editar nada, ni un archivo de configuración o algo.

Re: Problema con JS

Publicado: 21 May 2009, 18:37
por Alejandro
Con WampServer no, se instala y ya queda funcionando. AppServ lo mismo, elQuique comenta que lo usó con phpbb (la plataforma de foros), wordpress y drupal y no tuvo que hacer ningún cambio.

PHP instalado y problema solucionado

Publicado: 22 May 2009, 11:49
por Manolo
Snif, snif...
¡Por fín he conseguido que un archivo PHP con un 'Hola Mundo' funcione! Aún me estoy secando las lágrimas de la ilusión :mrgreen:
Gracias a todos. En este foro he solucionado mi problema con JavaScript y he instalado PHP. Gracias a todos, de verdad, ahora le veo el sentido a los 15€ que me gasté en el libro 'PHP5, guía práctica' :)
Ahora, a aprender.

Re: Problema con JS

Publicado: 22 May 2009, 22:56
por elQuique
Ahora hazte un sistema gestor de bienes raíces para practicar :)

Re: Problema con JS

Publicado: 23 May 2009, 16:12
por Manolo
@elQuique: no estaría mal, pero lo idóneo sería que empezase por un 'Hola Mundo' :)

Re: Problema con JS

Publicado: 24 May 2009, 04:43
por elQuique
Es que si instalaste el PHP hace 72hs, imagino que ya hiciste un hola mundo, de no ser así copia y pega:

Código: Seleccionar todo

<?php
echo 'Hola mundo';
bueno ahora si, a no poder excusas !! :)

Busca en Google: Tutorial bienes raíces en PHP

Re: Problema con JS

Publicado: 25 May 2009, 11:30
por tomasdev
Mi recomendacion: Utiliza Xampp...

Luego, cuando programes php el archivo debes guardarlo en la carpeta que quieras (ej. tucarpeta), pero dentro de tu "root folder", que en Xampp es HTDOCS dentro de la carpeta de instalacion. Y asi, accedes desde un navegador a http://localhost/tucarpeta/ pues si accedes solo a localhost lo mas probable es que te salte una pantalla de Xampp...

Y lo aclare, porque cuando tenia 13, programaba php como si fuera JS y le intentaba dar doble click sin siquiera saber que existia apache.