Foros del Web » Programando para Internet » Javascript »

Añadir elemento a array dinámicamente

Estas en el tema de Añadir elemento a array dinámicamente en el foro de Javascript en Foros del Web. Pues tengo una duda, y es que quiero saber si se puede añadir un elemento a un array en javascript, cuyo valor será un dato ...
  #1 (permalink)  
Antiguo 21/08/2008, 12:36
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 9 meses
Puntos: 6
Añadir elemento a array dinámicamente

Pues tengo una duda, y es que quiero saber si se puede añadir un elemento a un array en javascript, cuyo valor será un dato (imagen, texto...) obtenido mediante una función/formulario.
  #2 (permalink)  
Antiguo 21/08/2008, 12:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Añadir elemento a array dinámicamente

Si te refieres a la clase Array() sí se puede. Por ejemplo:
Código PHP:
var myarray = new Array();
myarray[0] = "nuevo dato";
//Así se va agregando 
Aunque me da la impresión de que no es eso lo que necesitas, ¿podrías explicarlo mejor?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 21/08/2008, 12:54
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Añadir elemento a array dinámicamente

ahm...

Código PHP:
var ar=new Array, dato=1;
ar[0]=dato;
function 
hola()
{
dato=2;
}
alert(ar[0]); //resultado "2" es lo que queres? 
Si no entendi mal.. lo que vos queres es un puntero.... pero no hay.. no te queda otra que hacer
Código PHP:
function hola()
{
ar[0]=2;

  #4 (permalink)  
Antiguo 21/08/2008, 13:07
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Añadir elemento a array dinámicamente

Quizá no me haya explicado bien.

Lo que quería saber es si puedo añadir un elemento a un array, no manualmente, sino que automáticamente se añade tomando un valor obtenido de una función o formulario.

Dicho de forma cutre, sería como el típico sistema de noticias (no es lo que quiero hacer en realidad, sino usaría otros lenguajes xd) de PHP+MySQL, pero hecho con arrays de JavaScript.

Me explico? :$
  #5 (permalink)  
Antiguo 21/08/2008, 13:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Pregunta Respuesta: Añadir elemento a array dinámicamente

Sigo sin entender, ¿a qué te refieres con que sea "automáticamente"?. ¿Que se agregue al último elemento o qué?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 21/08/2008, 13:23
Avatar de Legoltaz  
Fecha de Ingreso: agosto-2008
Mensajes: 325
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Añadir elemento a array dinámicamente

Cita:
Iniciado por David el Grande Ver Mensaje
Sigo sin entender, ¿a qué te refieres con que sea "automáticamente"?. ¿Que se agregue al último elemento o qué?
Por ejemplo:

Que haya un formulario, y un input text. El usuario escribe hola, y este valor/texto (hola) se añade a un array que contiene otros tantos valores.
  #7 (permalink)  
Antiguo 21/08/2008, 13:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Añadir elemento a array dinámicamente

A ver, si entendí lo que quieres hacer es por ejemplo, si ya tengo un array con 4 elementos, que se agregue un quinto elemento, ¿es eso?.
En el caso del input text en el formulario que mencionaste sería:
Código PHP:
myarray[myarray.length] = form.input.value
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 22/08/2008, 22:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 7 meses
Puntos: 45
Respuesta: Añadir elemento a array dinámicamente

Hola:

La clase Array tiene un método que se llama push() para insertar un elemento al final del array:
Código PHP:
var miArr = [0,1,2,3];
miArr.push(4);
miArr.push(5);
alert(miArr);   // 0,1,2,3,4,5 
Y para que se añada al escribir algo en un input de texto cuando pierda el foco sería así:
Código HTML:
<input type="text" onblur="miArr.push(this.value)" /> 
Yo todavía no logro saber qué quieres hacer.



Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #9 (permalink)  
Antiguo 23/08/2008, 05:14
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Añadir elemento a array dinámicamente

Hola

Llevando este tema un poco más allá, ¿se podría hacer esto que propongo?
Hacer una consulta a la bd y sacar una serie de registros. Uno de los campos de esos registro será el se use para llenar un array. Por ejemplo en una consulta le llegan 3 registros, pues lo que quiero es montar un array tal que así

Cita:
var arra = [];
arra.push(15);
arra.push(17);
arra.push(1);
con lo cual su construcción sería algo así

Cita:
var arra = [];
<%
registros = rs.getrows()
for i = 0 to UBound(registros,2)
%>
arra.push(<%=registros(0,i)%>);
<%
Next
%>
document.write (arra)

EDITO:
Es algo que se me ocurrió de repente, y pensé que no funcionaría pero lo he estado probando y funciona
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 23/08/2008 a las 13:00
  #10 (permalink)  
Antiguo 23/08/2008, 08:51
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 7 meses
Puntos: 45
Respuesta: Añadir elemento a array dinámicamente

Adler, como has dicho funciona, pero si inicializas arra con arra = [0] ya le estás diciendo que el primer elemento es cero. También decirte que la sintaxis correcta es arra.push(elemento) y no arra.push = (elemento) como has escrito (¿te funcionó? )

En este caso no han hecho falta comillas en javascript, porque son números. Pero en caso de ser Strings habría que tener cuidado con las comillas, y si los registros de la BD pudieran contener comillas también, escaparlas con \ o eliminarlas.

Creo que la forma más fácil de hacerlo (consimiendo menos recursos) es eliminando el bucle javascript y construyendo un string en PHP para "pegarlo" en el código javascript:
Código PHP:
<?
include("conexion.php");

$res mysql_query("select * from categorias"$link);
$ristra "";                                        // aquí irán todos los elementos para el array javascript
while( $row mysql_fetch_assoc($res) )
    
$ristra .= "'" $row["nombre"] . "', ";                    // añadimos un elemento a la ristra con una coma para el siguiente elemento
$ristra ereg_replace(", $"""$ristra);            // quitamos la coma final residual

?>


<script type="text/javascript">
<!--

var miArr = [<?=$ristra?>];      // Saldrá en el código fuente generado lo siguiente:
// var miArr = ['útiles', 'higiene personal', 'hábitos diarios', 'electrónica', 'cuerpo', 'vestimenta'];

-->
</script>

Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #11 (permalink)  
Antiguo 23/08/2008, 12:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Añadir elemento a array dinámicamente

Cita:
Iniciado por derkenuke Ver Mensaje
Adler, como has dicho funciona, pero si inicializas arra con arra = [0] ya le estás diciendo que el primer elemento es cero. También decirte que la sintaxis correcta es arra.push(elemento) y no arra.push = (elemento) como has escrito (¿te funcionó? )
Tienes toda la razón . No, al probarlo estaba bien escrito. Ahora lo edito

Cita:
Iniciado por derkenuke Ver Mensaje
Creo que la forma más fácil de hacerlo (consimiendo menos recursos) es eliminando el bucle javascript y construyendo un string en PHP para "pegarlo" en el código javascript:
Yo tabajo en ASP, pero voy a probarlo

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:28.