O princípio é de inserir
um separador entre cada campo. E "pede-se"
ao Javascript de retirar os caracteres
compreendidos entre dois separadores.
Com o separador *, os dados tornam-se:
str="Sérgio*Brandão*Rua
da passagem,444*4440*Valongo*Portugal*"
ou seja 60 posições em vês
de 80 tem-se um ganho de 25 %.
Para ler este diferentes dados, proceda-se
em varias etapas:
- Para pos=str.indexOf("*"),
nota-se a posição na string
do primeiro separador encontrado.
- Para str.substring(0,pos),
tem-se o primeiro dado compreendido
entre o início da string (posição
0) e a posição menos 1
do separador ou seja Sérgio.
- Para str=str.substring(pos+1,str.length),
recria-se uma string correspondendo
à string do iníncio menos
o dado parcial que acabou-se de extrair
menos um separador. O que dá:
str="Brandão*Rua da passagem,444*4440*Valongo*Portugal*"
- E isto, por um ciclo, até haver
separadores menos 1.
Para guardar os dados, a maneira mais
prática para os guardar é
o controlador do formulário Hidden
(encondido)em vez da string.
Pourquê? Bem com as string funciona,
mas há o risco de chegar a limitação
do comprimento das strings em Javascript,
50 à 80 caracteres. Por isso usa-se
o símbolo + e a concatenação
dos dados para que ele seja aceito pelo
compilador Javascript.
O controlador do formulário Hidden
não está sujeito a esta
limitação de caracteres.
Pode-se guardar 30 K (e mais) de
dados. Basta assim entrar no controlador
do formulário Hidden e dar atributo
value="os dados a guardar".
O script completo será algo do
tipo:
<HTML>
<BODY>
<FORM name="form">
<INPUT type=hidden name="data"
value="Sérgio*Brandão*Rua
da passagem,444*4440*Valongo*Portugal*">
</FORM>
<SCRIPT LANGUAGE="javascript">
str=document.form.data.value; // extriar
o string do controlador hidden
nsep=6 // número do separador
for (var i=0;i<nsep;i++){
pos=str.indexOf("*");
document.write(str.substring(0,pos)+ "<BR>");
str=str.substring(pos+1,str.length);
}
</SCRIPT>
</BODY>
</HTML>
|