Foros del Web » Programando para Internet » Javascript »

Agenda de contactos

Estas en el tema de Agenda de contactos en el foro de Javascript en Foros del Web. Hola muy buenas tardes, tengo un problemilla y nose si es muy complejo o no, ya que nose mucho de Javascript. Necesito poder buscar aqui ...
  #1 (permalink)  
Antiguo 26/07/2010, 07:01
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Agenda de contactos

Hola muy buenas tardes, tengo un problemilla y nose si es muy complejo o no, ya que nose mucho de Javascript.
Necesito poder buscar aqui por el nombre del registro y poder añadir algo si el nombre sta repetido, para que me deje insertarlo pero necesito que me avise que tengo varios ombreas iguales con diferentes datos. mi codigo es este:

el fichero js llamado addressBook.js:

var arrRecords = new Array();
var arrCookie = new Array();
var recCount = 0;
var strRecord="";
expireDate = new Date;
expireDate.setDate(expireDate.getDate()+365);
function cookieVal(cookieName) {
thisCookie = document.cookie.split("; ")
for (i = 0; i < thisCookie.length; i++) {
if (cookieName == thisCookie[i].split("=")[0]) {
return thisCookie[i].split("=")[1];
}
}
return 0;
}
function loadCookie() {
if(document.cookie != "") {
arrRecords = cookieVal("Records").split(",");
currentRecord();
}
}
function setRec() {
strRecord = "";
for(i = 0; i < document.frm1.elements.length; i++) {
strRecord = strRecord + document.frm1.elements[i].value + ":";


}
arrRecords[recCount] = strRecord;

document.frm2.add.value = " NEW ";
document.cookie = "Records="+arrRecords+";expires=" + expireDate.toGMTString();
}
function newRec() {
switch (document.frm2.add.value) {
case " NEW " :
varTemp = recCount;
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = ""
}
recCount = arrRecords.length;
document.frm2.add.value = "CANCEL";
break;
case "CANCEL" :
recCount = varTemp;
document.frm2.add.value = " NEW ";
currentRecord();
break;
}
}
function countRecords() {
document.frm2.actual.value = "Record " + (recCount+1)+"; "+arrRecords.length+" saved records";
}
function delRec() {
arrRecords.splice(recCount,1);
navigate("previous");
setRec();
}
function currentRecord() {
if (arrRecords.length != "") {
strRecord = arrRecords[recCount];
currRecord = strRecord.split(":");
for(i = 0; i < document.frm1.elements.length; i++) {
document.frm1.elements[i].value = currRecord[i];
}
}
}


function navigate(control) {
switch (control) {
case "first" :
recCount = 0;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "last" :
recCount = arrRecords.length - 1;
currentRecord();
document.frm2.add.value = " NEW ";
break;
case "next" :
if (recCount < arrRecords.length - 1) {
recCount = recCount + 1;
currentRecord();
document.frm2.add.value = " NEW ";
}
break;
case "previous" :
if (recCount > 0) {
recCount = recCount - 1;
currentRecord();
}
document.frm2.add.value = " NEW ";
break;
default:
}
}


if (!Array.prototype.splice) {
function array_splice(ind,cnt) {
if (arguments.length == 0) return ind;
if (typeof ind != "number") ind = 0;
if (ind < 0) ind = Math.max(0,this.length + ind);
if (ind > this.length) {
if (arguments.length > 2) ind = this.length;
else return [];
}
if (arguments.length < 2) cnt = this.length-ind;
cnt = (typeof cnt == "number") ? Math.max(0,cnt) : 0;
removeArray = this.slice(ind,ind+cnt);
endArray = this.slice(ind+cnt);
this.length = ind;
for (var i = 2; i < arguments.length; i++) {
this[this.length] = arguments[i];
}
for(var i = 0; i < endArray.length; i++) {
this[this.length] = endArray[i];
}
return removeArray;
}
Array.prototype.splice = array_splice;
}
recCount = 0;
loadCookie();
countRecords();

y el html:

<body>

<div style="float:right; width:25%; background-color:#f5f5f5; border: solid 1px #F7F7F7; font-size:4px;
display:block; clear:both">
<form name="frm1" style="font-size:4px">
<table align="center" resize="none" border="0" style="font-size:10px">
<tr>
<td align="right">Name:</td>
<td colspan="5"><input type="box" name="name" size="49"></td>
</tr>
<tr>
<td align="right">Address:</td><td colspan="5"><input type="box" name="address" size="49"></td></tr>

<tr>
<td align="right">City:</td>
<td><input type="box" name="city" size="15"></td>

</tr>
<td align="right">Phone:</td>
<td align="left"><input type="box" name="phone" size="8"></td>

</tr>

<td align="right">E-Mail:<td colspan="5" align="left"><input type="box" name="email" size="49"></td></tr>
<tr><td align="right" valign="top">Comments:</td>
<td colspan="5" align="left"><input type="box" name="comment1" size="49"><br>
<input type="box" name="comment2" size="49"><br>

</td></tr></table>
</form>
<form name="frm2">
<table align="center" border="1" resize="none" style="font-size:10px"><tr><td align="center">
<input type="button" name="first" value="|<< " onClick="navigate('first');countRecords()">
<input type="button" name="previous" value=" < " onClick="navigate('previous');countRecords()">
<input type="button" name="next" value=" > " onClick="navigate('next');countRecords()">
<input type="button" name="last" value=" >>|" onClick="navigate('last');countRecords()">
<input type="box" name="actual" size=30></td></tr>
<tr><td align="center"><input type="button" name="add" value=" NEW " onClick="newRec();countRecords()">
<input type="button" name="set" value="SAVE RECORD" onClick="setRec();countRecords()">
<input type="button" name="del" value="Delete" onClick="delRec();countRecords()"></td></tr></table>
</form>
</div>

</body>

Gracias estoy atrapado aqui y nose como continuarlo, muchas gracias!!!!
  #2 (permalink)  
Antiguo 26/07/2010, 07:50
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Agenda de contactos

No se si me expique bien, necesito que en la cajita de texto pueda insertar un boton de buscar por nombre, lo inserto y me muestra los datos del nombre que he introducido, eso en un principio es lo mas importante, la otra parte es un poco mas compleja creo yo........
grcias de antemano, creo que no es muy complicado pero no se bien por donde cojerlo
  #3 (permalink)  
Antiguo 26/07/2010, 08:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Agenda de contactos

espero haber entendido bien la consulta. por supuesto que la otra parte es la mas compleja, pues ahi es donde esta las operaciones de logica. lo que tienes que hacer es buscar todas las cookies existente y luego recorrerlas con un bucle para determinar si el valor introduccido por el usuario coincide con alguna de las cookies. de resultar cierto, haces lo que necesites, mostrar los datos, cargar los datos, o lo que fuera. no he visto bien tu codigo pero te dejo mas o menos un pseudocodigo.
Código:
function buscarRegistro(nombre){
var registro = null;
var registros = busca todas los registros almacendados en cookie;
// asumiendo que obtienes todas las cookies como array;
for(var i = 0; i < registros.length; i++) if(registros[i].name == nombre) {registro = registros[i]; break;}
// asumiendo que cada elemento del array (la cookie) es representada como un objeto con sus propiedades;

// de aqui en adelante haces lo necesario con la variable registro;
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 26/07/2010, 08:30
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Agenda de contactos

La verdad no se muy bien como implementarlo, si le puedes hechar un vistazo a mi codigo y orientarme un poco mas, porque no se exactamente como añadir eso a mi codigo.
Perdon por mi ignorancia, ya has hecho mucho con contestar y molestarte, te gradeciar esa ayuda extra, muchas gracias, un saludo y buena tarde
  #5 (permalink)  
Antiguo 27/07/2010, 00:59
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Agenda de contactos

¿Alguien sabria como implementar eso en mi codigo porfa?
Muchas gracias, necesito ayuda please
  #6 (permalink)  
Antiguo 27/07/2010, 08:34
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Agenda de contactos

Esta claro q una funcion seacrh es lo que necesito, pero no se como hacerlo si alguine puede explicarlo me venduira bien para prende mas y poder salir de este bucle de infierno en javascript. Seguramente le estare dando vueltas a algo que esta casi hecho.....

Etiquetas: agenda, contactos
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 15:25.