Foros del Web » Programando para Internet » Javascript »

FAQs JavaScript

Estas en el tema de FAQs JavaScript en el foro de Javascript en Foros del Web. 101 - Ordenar campos de una tabla segun columna P. ¿Cómo puedo ordenar los datos de una tabla dependiendo de cada columna? R. Muy sencillo, ...
  #101 (permalink)  
Antiguo 06/02/2003, 10:36
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 22 años, 10 meses
Puntos: 0
101 - Ordenar campos de una tabla segun columna

P. ¿Cómo puedo ordenar los datos de una tabla dependiendo de cada columna?
R. Muy sencillo, consta de dos pasos.

1º Añade este Script en el head
Código PHP:
<SCRIPT LANGUAGE="JavaScript">

<!-- 
Begin
function compare(sVal1sVal2){
//para cambiar el orden (ascendente o descendente) se debe 
//cambiar a negativo el primer 1 y a positivo el segundo, segun convenga
 
if (sVal1 sVal2) return 1;
 if (
sVal1 sVal2) return -1;
 return 
0;
}
function 
setDataType(cValue)
  {
    
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
    // SORTING WHEN IN THE SORT FUNCTION
    
var isDate = new Date(cValue);
    if (
isDate == "NaN")
      {
        if (
isNaN(cValue))
          {
            
// THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
            // STRING UPPER CASE TO ASSURE PROPER A-Z SORT
            
cValue cValue.toUpperCase();
            return 
cValue;
          }
        else
          {
            
// VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
            // ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
            // THE NUMBER WHEN IT IS A STRING
            
var myNum;
            
myNum String.fromCharCode(48 cValue.length) + cValue;
            return 
myNum;
          }
        }
  else
      {
        
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
        // AND RETURN THE STRING NUMBER
        //BUG - STRING AND NOT NUMERICAL SORT .....
        // ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5  etc.)
        
var myDate = new String();
        
myDate isDate.getFullYear() + " " ;
        
myDate myDate isDate.getMonth() + " ";
        
myDate myDate isDate.getDate(); + " ";
        
myDate myDate isDate.getHours(); + " ";
        
myDate myDate isDate.getMinutes(); + " ";
        
myDate myDate isDate.getSeconds();
        
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
        
return myDate ;
      }
  }
function 
sortTable(coltableToSort)
  {
    var 
iCurCell col tableToSort.cols;
    var 
totalRows tableToSort.rows.length;
    var 
bSort 0;
    var 
colArray = new Array();
    var 
oldIndex = new Array();
    var 
indexArray = new Array();
    var 
bArray = new Array();
    var 
newRow;
    var 
newCell;
    var 
i;
    var 
c;
    var 
j;
    
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN SELECTED
    
for (i=1tableToSort.rows.lengthi++)
      {
        
colArray[1] = setDataType(tableToSort.cells(iCurCell).innerText);
        
iCurCell iCurCell tableToSort.cols;
      }
    
// ** COPY ARRAY FOR COMPARISON AFTER SORT
    
for (i=0colArray.lengthi++)
      {
        
bArray[i] = colArray[i];
      }
    
// ** SORT THE COLUMN ITEMS
    //alert ( colArray );
    
colArray.sort(compare);
    
//alert ( colArray );
    
for (i=0colArray.lengthi++)
      { 
// LOOP THROUGH THE NEW SORTED ARRAY
        
indexArray[i] = (i+1);
        for(
j=0bArray.lengthj++)
          { 
// LOOP THROUGH THE OLD ARRAY
            
if (colArray[i] == bArray[j])
              {  
// WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
                // CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
                // NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
                // MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
                // NEW ORDER ARRAY
                
for (c=0c<ic++)
                  {
                    if ( 
oldIndex[c] == (j+1) )
                    {
                      
bSort 1;
                    }
                      }
                      if (
bSort == 0)
                        {
                          
oldIndex[i] = (j+1);
                        }
                          
bSort 0;
                        }
          }
    }
  
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF TABLE ....
  
for (i=0i<oldIndex.lengthi++)
    {
      
newRow tableToSort.insertRow();
      for (
c=0c<tableToSort.colsc++)
        {
          
newCell newRow.insertCell();
          
newCell.innerHTML tableToSort.rows(oldIndex[i]).cells(c).innerHTML;
        }
      }
  
//MOVE NEW ROWS TO TOP OF TABLE ....
  
for (i=1i<totalRowsi++)
    {
      
tableToSort.moveRow((tableToSort.rows.length -1),1);
    }
  
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE TABLE ....
  
for (i=1i<totalRowsi++)
    {
      
tableToSort.deleteRow();
    }
  }
//  End -->
</script> 
2º Paso: Crear la tabla

Código PHP:
//indicar el número de columnas, teniendo cuidado de que no haya colspan
<table name="rsTable" id="rsTable" cols=6>
<
tr><td><A href="java script:sortTable(0, rsTable">ID</A></td>
    <
td><A href="java script:sortTable(1, rsTable);">Nombre</A></td>
    <
td><A href="java script:sortTable(2, rsTable);">Apellidos</A></td>

//etc... 
Y lo demás depende de ustedes.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #102 (permalink)  
Antiguo 06/02/2003, 11:26
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 3 meses
Puntos: 38
102.- Extraer información de una opción seleccionada en un select

P: ¿Como puedo extraer de un elemento select el índice o el valor o el nombre desplegado en la opción seleccionada?

R:
Código PHP:
<html>
 <
head>
  <
script language="JavaScript">
   function 
cambia(){
    
with (document.frm){
     
indice.value String(selector.selectedIndex);
     
opcion.value selector.options[selector.selectedIndex].text;
     
valor.value selector.options[selector.selectedIndex].value;
    }
   }
  
</script>
 </head>
 <body>
  <form name="frm">
   Indice:<input type="text" name="indice"><br>
   Opcion:<input type="text" name="opcion"><br>
   Valor: <input type="text" name="valor"><br>
   Seleccione:<select name="selector" onchange="cambia()">
    <option>Seleccione un valor</option>
    <option value="1">Uno</option>
    <option value="2">Dos</option>
    <option value="3">Tres</option>
   </select>
  </form>
 </body>
</html> 
  #103 (permalink)  
Antiguo 12/02/2003, 12:08
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 4 meses
Puntos: 61
103. Una imagen linkable cada semana

P.- ¿Cómo puedo hacer que aparezca una imagen linkable nueva cada semana en mi web?

R.- Por medio de este código:

Código PHP:
<html>
<
head>

<
script>
//Script original de KarlanKas para Forosdelweb.com

var bisiesto=//Si es año bisiesto pon 1

enlace=new Array;
alt=new Array;
imagen=new Array;

//-------ENLACES ALT E IMAGEN PARA CADA SEMANA------------

enlace[1]="http://www.loslunesalsol.com/";
alt[1]="esta es la imagen del lunes"
imagen[1]="http://www.cartelia.net/fotos/l/loslunesalsol.jpg"

enlace[2]="http://www.martes.com";
alt[2]="esta es la imagen del martes";
imagen[2]="http://www.martes.com/images/marteshomesk.gif";

enlace[3]="http://www.wednesday.com";
alt[3]="Esta es la imagen del miércoles"
imagen[3]="http://www.wednesday.com/images/logo.gif";

enlace[4]="http://www.thursday.com/";
alt[4]="Es que en español no había..."
imagen[4]="http://www.thursday.com/5.jpg";

enlace[5]="http://www.tgifridays.com/index1.html";
alt[5]="No podía ser de otra forma!";
imagen[5]="http://www.tgifridays.com/index_files/newindex.gif";

enlace[6]="http://www.sabado.info";
alt[6]="Te gusta la música?";
imagen[6]="http://www.sabado.info/image/guitar.gif";

//_---------SEGUIR HASTA LA SEMANA 52--------------------------

//----------NO EDITAR A PARTIR DE AQUÍ---------------------
var cantidadDeDias=0;
var 
semana=1
diaspormes
=new Array(31,28+bisiesto,31,30,31,30,31,31,30,31,30,31
);
hoy=new Date;
anio=hoy.getYear()
primero=new Date(anio,0,1)
diasem=primero.getDay()
dia=hoy.getDate();
mes=hoy.getMonth();
for (
a=0;a<mes;a++){
cantidadDeDias=cantidadDeDias+diaspormes[a]
}
cantidadDeDias=cantidadDeDias+dia;
for (
a=0;a<cantidadDeDias;a++){
diasem=diasem+1
if (diasem>6){diasem=0;semana=semana+1}
}
//---------------------------------------------------------
</script>

</head>

<body>
<script>
document.write("<A HREF="+enlace[semana]+"><img src="+imagen[semana]+" ALT='"+alt[semana]+"'></A>");
</script>
</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 04/01/2005 a las 11:40
  #104 (permalink)  
Antiguo 12/02/2003, 12:33
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 4 meses
Puntos: 61
104.- Enlaces autoexplicativos

P.- ¿Cómo poner enlaces con una explicación desplegable del mismo abajo?

R.- Así:

[Ver Ejemplo]

Código PHP:

<html>
<
head>
<
style>
body{    font:normal 10px/20px verdana;}

blockquoteborder:solid 1px black;
            
font:normal 10px/12px verdana;
            
background:#ffffcc;
            
margin:1px 1px 1px 20px;
            
padding:5px 5px 5px 5px;
            
width:500px;
        }
.
norm{    color:blue;
        
border:none;
        
font:normal 10px/10px verdana;
          
text-decoration:underline;
    }
img{    border:none;
    }
</
style>

<
script>

//Script original de KarlanKas con la colaboración de caricatos para Forosdelweb.com


explicacion=new Array;
enlace=new Array;
texto=new Array;

//-------------------------- EDITABLE ---------------------------
enlace[0]="http://www.forosdelweb.com";
texto[0]="Ir a foros del web."
explicacion[0]="Foros del Web es el foro de programación hispana más visitado por los habitantes de la luna de Gaminedes.";

enlace[1]="http://www.webareyou.com";
texto[1]="Visitar Web Are You. La página en eterna construcción."
explicacion[1]="Todos los seres abducidos tienen, desde la LSSI, la obligación de tener una página web explicando sus experiencias. Aquí está la mía.";

enlace[2]="http://www.estiloweb.com";
texto[2]="Necesitas ayuda?"
explicacion[2]="Cuando uno se enfrenta a la realización de una página web siempre le surgen dudas... con webestilo.com se resuelve más de una...";

enlace[3]="http://www.tunait.com";
texto[3]="Quieres charlar, divertirte y demás con la página de tunait?"
explicacion[3]="Nuestra querida tunait nos regala una magnífica página donde su plato fuerte es un magnífico foro lleno de buen rollito y diversión... no os lo perdais!";

enlace[4]="http://www.pepemolina.com";
texto[4]="Qué tal visitar la página de caricatos?"
explicacion[4]="Quien no recuerda el generador de código o el enviador de postales...? Caricatos no sólo responde, sino que genera nuevas inquietudes a cada momento. Visitad la página donde recoge todos sus avances!";

// SE PUEDE PONER TANTOS COMO SE QUIERA

//---------------------------------FIN DE CÓDIGO EDITABLE--------------------------------

function anadir(texto,esto){
t=texto
texto
=document.getElementById("enlace"+texto)
if(!
texto.primero){texto.primero=texto.innerHTML}
if(
isNaN(texto.ensenar)){texto.ensenar=-1}
var 
pepe=texto.ensenar
pepe
=pepe*-1
texto
.ensenar=pepe
if (texto.ensenar==1){
esto.innerHTML="-";
texto.innerHTML=texto.innerHTML+"<blockquote>"+explicacion[t]+"</blockquote>"

}
if (
texto.ensenar==-1){
;
texto.innerHTML=texto.primero
}


}

</script>
<title>FAQ 104.- Enlaces autoexplicativos </title>
</head>

<body>

<script>
for (w=0;w<enlace.length;w++){
document.writeln('<div id="enlace'+w+'"><a onfocus="blur()" href="#" onclick="anadir('+w+',this)">+</a><a class="norm" HREF="'+enlace[w]+'" target="_blank">'+texto[w]+'</a></div>');
}
</script>
</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 04/01/2005 a las 11:41
  #105 (permalink)  
Antiguo 13/02/2003, 10:16
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 22 años, 3 meses
Puntos: 4
105.- Selects

P: ¿Como puedo hacer para que al cambiar la opción seleccionada en un combo, cambien también las opciones disponibles en otro combo indicando la URL de destino?

R: [ver ejemplo]
Código PHP:
<!-- basado en el código original propuesto por Kaopectate -->
<
html>
 <
head>
  <
script language="JavaScript">

   function 
addOpt(oCntrliPossTxtsVal){
     var 
selOpcion=new Option(sTxtsVal);
     eval(
oCntrl.options[iPos]=selOpcion);
   }

   function 
cambia(oCntrl){
    switch (
document.frm.pais.selectedIndex){
     case 
0
      
addOpt(oCntrl,  0"Ciudad de México""http://www.mexico.com");
      
addOpt(oCntrl,  1"Monterrey""http://www.monterrey.com");
      
addOpt(oCntrl,  2"Guadalajara""http://www.guadalajara.com");
      break;
     case 
1
      
addOpt(oCntrl,  0"Madrid""http://www.madrid.com");
      
addOpt(oCntrl,  1"Barcelona""http://www.barcelona.com");
      
addOpt(oCntrl,  2"San Sebastián""http://www.sansebastian.com");
      break;
     case 
2
      
addOpt(oCntrl,  0"Caracas""http://www.caracas.com");
      
addOpt(oCntrl,  1"Maracay""http://www.maracay.com");
      
addOpt(oCntrl,  2"Valencia""http://www.valencia.com");
      break;
    }
   }
  
</script>
 </head>
 <body>
  <form name="frm">
   <table border="0" width="482">
    <tr>
     <td width="25">
      Pais
     </td>
     <td width="89">
      <select name="pais" onchange="cambia(document.frm.ciudad)">
       <option value="Mex">Mexico</option>
       <option value="Esp">España</option>
       <option value="Ven">Venezuela</option>
      </select>
     </td>
     <td width="6">
      &nbsp;
     </td>
     <td width="44">
      Ciudad
     </td>
     <td width="296">
      <select name="ciudad" onChange="location.href=this.form.ciudad.options[this.form.ciudad.selectedIndex].value">
       <option value="0">Ciudad de México</option>
       <option value="1">Monterrey</option>
       <option value="2">Guadalajara</option>
      </select> <input type="button" value="Ir a..." onClick="location.href=this.form.ciudad.options[this.form.ciudad.selectedIndex].value"</td>
    </tr>
   </table>
  </form>
 </body>
</html> 
  #106 (permalink)  
Antiguo 15/02/2003, 08:56
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 4 meses
Puntos: 61
106. Cómo cambiar una imagen al hacer un MouseOver


P.-¿Cómo puedo cambiar la imagen de fondo de la página o una imagen cualquiera de la misma al hacer un mouseOver sobre un enlace?
R.-Con este código:
[Ver ejemplo]


Código PHP:
<html>
<
head>
<
style>
A{text-decoration:none;
color:#330099;
font:bold 10px/15px verdana;
}
A:HOVER{text-decoration:underline;}
</
style>
    <
title>Ejemplillo</title>
    <
script>

// Quiero agradecer públicamente la gran ayuda de tunait.
// Por enseñarme, entre otras muchas cosas, la importancia de la elección de la denominación de variables. 
// Estas variables pretenden ser una aplicación práctica de tantas conversaciones sobre las mismas. X·D



    
codigoQueTeAhorrasPicar="";
    
    function 
crear(a,b,c,d){
    
this.tezto=a;
    
this.ondeVa=b;
    
this.tieneSuImagensitaYTo=new Image
    this
.tieneSuImagensitaYTo.src=c;
    if(
d){this.queFotoCambio=d}
    }
//unEnlasito=new crear([TEXTO QUE APARECE EN EL ENLACE],[DESTINO DEL ENLACE],[RUTA DE LA IMAGEN],[ID DE LA IMAGEN QUE CAMBIA- SI SE DEJA EN BLANCO SE CAMBIA EL FONDO DE LA PÁGINA]);
    
unEnlasito=new Array;
    
unEnlasito[0]=new crear("Veamos la página de Tunait","http://www.tunait.com","http://www.tunait.com/encuentros/encuentrosb.jpg","macario");
    
unEnlasito[1]=new crear("Veamos la de Caricatos","http://www.pepemolina.com","http://www.forosdelweb.com/avatar.php?userid=18599&dateline=1037047895");
    
unEnlasito[2]=new crear("Quieres ver la página de Web Are You?","http://www.karlankas.net","http://www.webareyou.com/logo.jpg");

// fonditoMono=[EL FONDO QUE SE QUIERE PARA LA PÁGINA]    

    
fonditoMono="White url('http://www.klasic.org/img/klasic.jpg') no-repeat fixed center";
    
//---------------------------------------- NO TOQUES A PARTIR DE AQUI SI NO SABES LO QUE HACES ---------------------
    
for (principio=0;principio<unEnlasito.length;principio++){
    
codigoQueTeAhorrasPicar=codigoQueTeAhorrasPicar+"<a href="+unEnlasito[principio].ondeVa+" onmouseout='noQuieroVe(unEnlasito["+principio+"])' onmouseover='quieroVe(unEnlasito["+principio+"])'>"+unEnlasito[principio].tezto+"</a><br>";
    }
    
    function 
quieroVe(etoMimamente){
    if (
etoMimamente.queFotoCambio!=null){
    
fotilloPaCambia=document.getElementById(etoMimamente.queFotoCambio);
    
fotilloPaCambia.src=etoMimamente.tieneSuImagensitaYTo.src;
    }
    else{
cuerpoSerrano.style.background="White url("+etoMimamente.tieneSuImagensitaYTo.src+") no-repeat fixed center";}
    }
    function 
noQuieroVe(etoMimamente){
    if (
etoMimamente.queFotoCambio!=null){
    
fotilloPaCambia=document.getElementById(etoMimamente.queFotoCambio);
    
fotilloPaCambia.style.visibility="hidden";
    }
    else{
cuerpoSerrano.style.background=fonditoMono;}
    }
    
//----------------------------------- HALE, YA PUEDES TOCAR ----------//
        
</script>
</head>

<body id="cuerpoSerrano" onload="document.getElementById('cuerpoSerrano').style.background=fonditoMono">

<script>document.write(codigoQueTeAhorrasPicar)</script>

<!-- ESTAS IMAGENES SON DE PRUEBA. 'TUNAIT' CAMBIA LA FOTO MACARIO. 
SI ESTAS IMAGENES TIENEN CONTENIDO DESDE EL PRINCIPIO QUITA EL ONLOAD Y EL STYLE---->

<img id=pepe style="visibility:hidden" onLoad="this.style.visibility='visible'"><br>

<img id=juan style="visibility:hidden" onLoad="this.style.visibility='visible'"><br>

<img id=macario style="visibility:hidden" onLoad="this.style.visibility='visible'"><br>

</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 26/02/2003 a las 06:44
  #107 (permalink)  
Antiguo 18/02/2003, 17:48
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 3 meses
Puntos: 38
107.- Sumar (o restar) días a una fecha

P: ¿Como puedo sumar o restar días a una fecha?

R: [ver ejemplo]

Código PHP:
<html>
<
head>
 <
script language="JavaScript">

  var 
aFinMes = new Array(312831303130313130313031);

  function 
finMes(nMesnAno){
   return 
aFinMes[nMes 1] + (((nMes == 2) && (nAno 4) == 0)? 10);
  }

   function 
padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
  function 
incDate(sFec0){
   var 
nDia parseInt(sFec0.substr(02), 10);
   var 
nMes parseInt(sFec0.substr(32), 10);
   var 
nAno parseInt(sFec0.substr(64), 10);
   
nDia += 1;
   if (
nDia finMes(nMesnAno)){
    
nDia 1;
    
nMes += 1;
    if (
nMes == 13){
     
nMes 1;
     
nAno += 1;
    }
   }
   return 
makeDateFormat(nDianMesnAno);
  }

  function 
decDate(sFec0){
   var 
nDia Number(sFec0.substr(02));
   var 
nMes Number(sFec0.substr(32));
   var 
nAno Number(sFec0.substr(64));
   
nDia -= 1;
   if (
nDia == 0){
    
nMes -= 1;
    if (
nMes == 0){
     
nMes 12;
     
nAno -= 1;
    }
    
nDia finMes(nMesnAno);
   }
   return 
makeDateFormat(nDianMesnAno);
  }

  function 
addToDate(sFec0sInc){
   var 
nInc Math.abs(parseInt(sInc));
   var 
sRes sFec0;
   if (
parseInt(sInc) >= 0)
    for (var 
0nInci++) sRes incDate(sRes);
   else
    for (var 
0nInci++) sRes decDate(sRes);
   return 
sRes;
  }

  function 
recalcF1(){
   
with (document.formulario){
    
fecha1.value addToDate(fecha0.valueincrem.value);
   }
  }

 
</script>
</head>
<body>
 <form name="formulario">
  <table>
   <tr>
    <td align="right">
     Fecha (dd/mm/aaaa):
    </td>
    <td>
     <input type="text" name="fecha0" size="10">
    </td>
   </tr>
   <tr>
    <td align="right">
     Incremento:
    </td>
    <td>
     <input type="text" name="increm" size="3">
    </td>
   </tr>
   <tr>
    <td align="right">
     Resultado (dd/mm/aaaa):
    </td>
    <td>
     <input type="text" name="fecha1" disabled size="10">
    </td>
   </tr>
   <tr>
    <td colspan="2" align="center">
     <input type="button" onclick="recalcF1()" value="Calcular">
    </td>
   </tr>
  </table>
 </form>
</body>
</html> 

Última edición por Kaopectate; 19/02/2003 a las 11:29
  #108 (permalink)  
Antiguo 19/02/2003, 02:49
Avatar de epa2  
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 23 años
Puntos: 9
108.- Saludar al visitante por su país de procedencia.

P: ¿Como puedo saludar al visitante según su pais de origen?.

R: Con este código.

Tomado de: Elosan

Código:
 <script>
 nul = "";
 if (navigator.userLanguage == "es") nul = "España";
 if (navigator.userLanguage == "es-mx") nul = "Mejico";
 if (navigator.userLanguage == "es-gt") nul = "Guatemala";
 if (navigator.userLanguage == "es-cr") nul = "Costa Rica";
 if (navigator.userLanguage == "es-do") nul = "Republica Dominicana";
 if (navigator.userLanguage == "es-pa") nul = "Panama";
 if (navigator.userLanguage == "es-ve") nul = "Venezuela";
 if (navigator.userLanguage == "es-co") nul = "Colombia";
 if (navigator.userLanguage == "es-pe") nul = "Perú";
 if (navigator.userLanguage == "es-ar") nul = "Argentina";
 if (navigator.userLanguage == "es-ec") nul = "Ecuador";
 if (navigator.userLanguage == "es-cl") nul = "Chile";
 if (navigator.userLanguage == "es-uy") nul = "Uruguay";
 if (navigator.userLanguage == "es-py") nul = "Paraguay";
 if (navigator.userLanguage == "es-bo") nul = "Bolivia";
 if (navigator.userLanguage == "es-sv") nul = "El Salvador";
 if (navigator.userLanguage == "es-hn") nul = "Honduras";
 if (navigator.userLanguage == "es-ni") nul = "Nicaragua";
 if (navigator.userLanguage == "es-pr") nul = "Puerto Rico";
 if (nul == "") document.write("Gracias por visitarnos.");
 else document.write("Gracias por visitarnos desde " + nul +".")
</script>
__________________

***Aprendiz de todo y maestro de nada***

Última edición por Kaopectate; 23/03/2003 a las 10:37
  #109 (permalink)  
Antiguo 19/02/2003, 11:27
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 3 meses
Puntos: 38
109.- Valores iniciales de un rango de fechas

P: ¿Como puedo asignar los valores iniciales a un rango de fechas?

R: [ver ejemplo]

Código PHP:
<html>
 <
head>
  <
script language="JavaScript">
  
   
// Funciones comunes a todos los métodos de selección

   
function padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
   function 
prevMonth(nMonth){
    return ((
nMonth 10) % 12) + 1;
   }

   function 
prevMonth_Year(nMonthnYear){
    return 
nYear - (((nMonth 10) % 12) + == 1210);
   }

   function 
lastDayOfMonth(nMonthnYear){
    var 
aMonth = new Array(312831303130313130313031);
    if ((
nMonth == 2) && (nYear == 0))
     return 
29;
    else
     return 
aMonth[nMonth 1];
   }

   function 
incDate(sFec0){
    var 
nDia parseInt(sFec0.substr(02), 10);
    var 
nMes parseInt(sFec0.substr(32), 10);
    var 
nAno parseInt(sFec0.substr(64), 10);
    
nDia += 1;
    if (
nDia lastDayOfMonth(nMesnAno)){
     
nDia 1;
     
nMes += 1;
     if (
nMes == 13){
      
nMes 1;
      
nAno += 1;
     }
    }
    return 
makeDateFormat(nDianMesnAno);
   }

   function 
decDate(sFec0){
    var 
nDia parseInt(sFec0.substr(02), 10);
    var 
nMes parseInt(sFec0.substr(32), 10);
    var 
nAno parseInt(sFec0.substr(64), 10);
    
nDia -= 1;
    if (
nDia == 0){
     
nMes -= 1;
     if (
nMes == 0){
      
nMes 12;
      
nAno -= 1;
     }
     
nDia lastDayOfMonth(nMesnAno);
    }
    return 
makeDateFormat(nDianMesnAno);
   }

   function 
addToDate(sFec0nInc){
    var 
nIncAbs Math.abs(nInc);
    var 
sRes sFec0;
    if (
nInc >= 0)
     for (var 
0nIncAbsi++) sRes incDate(sRes);
    else
     for (var 
0nIncAbsi++) sRes decDate(sRes);
    return 
sRes;
   }

   
// Funciones individuales de cada método de selección

   // Esta semana completa (Lun -> Dom)
   
function setDefaults1(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
nDOW dToday.getDay();
    var 
sFirstDatesLastDate;

    if (
nDOW == 0nDOW 7;
    
sFirstDate addToDate(makeDateFormat(nDaynMonthnYear), -* (nDOW 1));
    
sLastDate addToDate(sFirstDate6);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Lo que va de esta semana (Lun -> Hoy)
   
function setDefaults2(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
nDOW dToday.getDay();
    var 
sFirstDatesLastDate;

    if (
nDOW == 0nDOW 7;
    
sLastDate makeDateFormat(nDaynMonthnYear);
    
sFirstDate addToDate(sLastDate, -* (nDOW 1));
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// La semana pasada (Lun -> Dom)
   
function setDefaults3(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
nDOW dToday.getDay();
    var 
sFirstDatesLastDate;

    if (
nDOW == 0nDOW 7;
    
sLastDate addToDate(makeDateFormat(nDaynMonthnYear), -nDOW);
    
sFirstDate addToDate(sLastDate, -6);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Los últimos siete días
   
function setDefaults4(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sLastDate makeDateFormat(nDaynMonthnYear);
    
sFirstDate addToDate(sLastDate, -6);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Este mes completo
   
function setDefaults5(oFromoTo){
    var 
dToday = new Date();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sFirstDate makeDateFormat(1nMonthnYear);
    
sLastDate makeDateFormat(lastDayOfMonth(nMonthnYear), nMonthnYear);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Lo que va de este mes
   
function setDefaults6(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sFirstDate makeDateFormat(1nMonthnYear);
    
sLastDate makeDateFormat(nDaynMonthnYear);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// El mes pasado
   
function setDefaults7(oFromoTo){
    var 
dToday = new Date();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
nYear prevMonth_Year(nMonthnYear);
    
nMonth prevMonth(nMonth);
    
sFirstDate makeDateFormat(1nMonthnYear);
    
sLastDate makeDateFormat(lastDayOfMonth(nMonthnYear), nMonthnYear);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Los últimos treinta días
   
function setDefaults8(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sLastDate makeDateFormat(nDaynMonthnYear);
    
sFirstDate addToDate(sLastDate, -29);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Este año completo
   
function setDefaults9(oFromoTo){
    var 
dToday = new Date();
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sFirstDate makeDateFormat(11nYear);
    
sLastDate makeDateFormat(3112nYear);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Lo que va de este año
   
function setDefaults10(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sFirstDate makeDateFormat(11nYear);
    
sLastDate makeDateFormat(nDaynMonthnYear);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// El año pasado
   
function setDefaults11(oFromoTo){
    var 
dToday = new Date();
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sFirstDate makeDateFormat(11nYear 1);
    
sLastDate makeDateFormat(3112nYear 1);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   
// Los últimos 365 días
   
function setDefaults12(oFromoTo){
    var 
dToday = new Date();
    var 
nDay dToday.getDate();
    var 
nMonth dToday.getMonth() + 1;
    var 
nYear dToday.getYear();
    var 
sFirstDatesLastDate;

    
sLastDate makeDateFormat(nDaynMonthnYear);
    
sFirstDate addToDate(sLastDate, -364);
    
oFrom.value sFirstDate;
    
oTo.value sLastDate;
   }

   function 
setDefaults(oFromoTonMeth){
    switch (
nMeth){
     case 
0
      
alert("");
      break;
     case 
1:
      
setDefaults1(oFromoTo);
      break;
     case 
2:
      
setDefaults2(oFromoTo);
      break;
     case 
3:
      
setDefaults3(oFromoTo);
      break;
     case 
4:
      
setDefaults4(oFromoTo);
      break;
     case 
5:
      
setDefaults5(oFromoTo)
      break;
     case 
6:
      
setDefaults6(oFromoTo)
      break;
     case 
7:
      
setDefaults7(oFromoTo)
      break;
     case 
8:
      
setDefaults8(oFromoTo)
      break;
     case 
9:
      
setDefaults9(oFromoTo)
      break;
     case 
10:
      
setDefaults10(oFromoTo)
      break;
     case 
11:
      
setDefaults11(oFromoTo)
      break;
     case 
12
      
setDefaults12(oFromoTo)
      break;
    }
   }

  
</script>
 </head>
 <body>
  <form name="formulario">
   <table border="0">
    <tr>
     <td colspan="2" style="font-family: helvetica; text-align: center; font-size: 12; font-weight: bold">
      VALORES DE INICIO DE UN RANGO DE FECHAS
     </td>
    </tr>
    <tr height="50">
     <td align="right">
      Tipo de rango:
     </td>
     <td>
      <select name="sel" onchange="setDefaults(document.formulario.fecha_desde, document.formulario.fecha_hasta, this.selectedIndex)">
       <option>...seleccione</option>
       <option>Esta semana completa</option>
       <option>Lo que va de esta semana</option>
       <option>La semana pasada</option>
       <option>Los últimos siete días</option>
       <option>Este mes completo</option>
       <option>Lo que va de este mes</option>
       <option>El mes pasado</option>
       <option>Los últimos treinta días</option>
       <option>Este año completo</option>
       <option>Lo que va de este año</option>
       <option>El año pasado</option>
       <option>Los últimos 365 días</option>
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Desde (dd/mm/yyyy):
     </td>
     <td>
      <input type="text" name="fecha_desde">
     </td>
    </tr>
    <tr>
     <td>
      Hasta (dd/mm/yyyy):
     </td>
     <td>
      <input type="text" name="fecha_hasta">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html> 

Última edición por Kaopectate; 19/02/2003 a las 11:29
  #110 (permalink)  
Antiguo 20/02/2003, 13:30
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 23 años, 2 meses
Puntos: 772
110.- Imágenes en miniatura

P: ¿Como puedo poner miniaturas de mis imágenes sin tener que reducirlas con un editor gráfico?

R: Con este código:
Código PHP:
<html>
<
head>
<
script>
    function 
minifoto(foto,H,V,ancho,alto) {
        
propH ancho H;
        
propV alto V;
        if (
propH>propV) {
            
anchoF propV;
            
altoF alto;
        }
        else {
            
altoF propH;
            
anchoF ancho;
        }
        
de = (ancho anchoF) / 2;
        
su = (alto altoF) /2;
        
imagen="<div style='width:"+ancho+";height:"+alto+";border:1px outset'>";
        
imagen+="<img src='"+foto+"' widht="+anchoF+" height="+altoF;
        
imagen+=" style='position:relative; left:"+de+";top:"+su+"'>";
        
imagen+="</div>";
        
document.write(imagen);
    }
</script>
</head>

<body>
<script>
    minifoto("foto.jpg",399,291,90,80);
</script>
</body>
</html> 
A la función minifoto se pasan: el nombre de la imágen, el ancho y alto real de la imágen y el ancho y alto en el que se quiere poner la imágen. La función "encaja" la imágen en un recuadro manteniendo las proporciones.

Nota: Me recuerda el amigo Bravenap, que aunque la imágen aparece en tamaño reducido, se descarga completa, es decir, con su tamaño real, por lo que no supone reducción del tiempo de descarga. Deberá tenerse esto en cuenta si se quiere utilizar este código con imágenes muy grandes o con muchas imágenes.

Última edición por JavierB; 05/06/2003 a las 02:57
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.
Tema Cerrado

SíEste tema le ha gustado a 103 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:14.