Foros del Web » Programando para Internet » Javascript »

recordar idioma por seleccion de usuario

Estas en el tema de recordar idioma por seleccion de usuario en el foro de Javascript en Foros del Web. Saludos! Bueno el cuento es el siguiente: Estoy haciendo un index que permita seleccionar el idioma de la página y que además de eso permita ...
  #1 (permalink)  
Antiguo 15/03/2007, 21:48
 
Fecha de Ingreso: abril-2005
Ubicación: Bogota
Mensajes: 2
Antigüedad: 19 años
Puntos: 0
recordar idioma por seleccion de usuario

Saludos!

Bueno el cuento es el siguiente:


Estoy haciendo un index que permita seleccionar el idioma de la página y que además de eso permita recordar la preferencia del usuario, así que si el usuario escoge "es" entonces en su próxima visita no va a volver a ver la página de selección de idioma sino la principal.

Entonces lo estoy haciendo de la siguiente manera:

Estoy utilizando el siguiente javascript para crear la cookie con el idioma seleccionado:


function newCookie(name,value,days) {
var days = 1; // the number at the left reflects the number of days for the cookie to last
// modify it according to your needs
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString(); }
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/"; }

function readCookie(name) {
var nameSG = name + "=";
var nuller = '';
if (document.cookie.indexOf(nameSG) == -1)
return nuller;

var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameSG) == 0) return c.substring(nameSG.length,c.length); }
return null; }

function eraseCookie(name) {
newCookie(name,"",1); }

function toMem(a) {
newCookie('elidioma', document.form.idioma.value); // add a new cookie as shown at left for every
}

function delMem(a) {
eraseCookie('elidioma'); // make sure to add the eraseCookie function for every field


document.form.idioma.value = ''; // add a line for every field

}


y en el formulario tengo lo siguiente:

<form id="setlanguage" name="setlanguage" method="post" action="" onSubmit="if (this.checker.checked) toMem(this)" >
<p>
<select name="lang" class="txt" onChange="MM_jumpMenu('parent',this,0)">
<option selected="selected">- Seleccione / Select -</option>
<option value="volver.html">Espa&ntilde;ol - ES</option>
<option value="volver.html">English - EN</option>
</select>
<br />
<label>
<input name="checkbox" type="checkbox" value="checkbox" checked="checked" />
Recordar el idioma / Remember language<br />
<br />
</label>
<input name="Submit" type="submit" class="txt" value="OK" onclick="return validaform();"/>
</p>
</form>

Como se daran cuenta en el evento "onSubmit" del formulario está la condicion de que si el campo check está activado entonces lleve las vars a la función y pueda escribir la cookie ... pero no está pasando.

Por cierto también me gustaría lograr quitar el salto que inserta dreamweaver en el evento "onChange" de los valores de la selección pero no sé en qué acción del botón hacerlo ya que está la función de validación antes.

Gracias por la mano!

Un saludo desde Colombia
  #2 (permalink)  
Antiguo 15/03/2007, 23:46
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Re: recordar idioma por seleccion de usuario

y si sacas el if que tienes en submit, lo conviertes en funcion, mandas llamar la creacion de la cookie si se efectua tu evaluacion.... y continuas con tu procedimiento standar??... no seria factible?

por que al parecer el problema radica en que no se hace la evaluacion que tienes en el form.....

no te parece?

function galletilla(form)
if (this.checker.checked){ toMem(this)}
end function

digo... solo es una propuesta.... pudiera funcionar, no?
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 12:30.