Foros del Web » Programando para Internet » Javascript »

Variable en array

Estas en el tema de Variable en array en el foro de Javascript en Foros del Web. Buen día! Tengo una duda y espero alguien me pueda ayudar. Tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var quebec = "" ...
  #1 (permalink)  
Antiguo 23/09/2015, 09:23
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Variable en array

Buen día!
Tengo una duda y espero alguien me pueda ayudar.
Tengo este código:
Código Javascript:
Ver original
  1. var quebec = "";
  2. window.onload = function pagadoras(){
  3.        var consulta;
  4.               //obtenemos el texto introducido en el campo de búsqueda
  5.               consulta = $("#numeroid").val();
  6.               //hace la búsqueda
  7.                   $.ajax({
  8.                     type: "POST",
  9.                     url: "../buscar.php",
  10.                     data: "b="+consulta,
  11.                     dataType: "html",
  12.  
  13.                     error: function(){
  14.                           alert("error petición ajax");
  15.                     },
  16.                     success: function(data){
  17.                           quebec = data;
  18.                       }
  19.               });
  20. }
Que obtiene datos de una consulta de PHP, funciona perfecto. La situación es que quiero insertar el resultado de esta consulta (lo contenido en mi variable "quebec") a un array javascript, algo así:
Código Javascript:
Ver original
  1. var pags = {quebec};
Sin embargo como era de esperarse me inserta el valor "quebec" en mi array, pregunta:
¿Como puedo insertar el resultado de mi consulta en el array de javascript?
Gracias de antemano!
  #2 (permalink)  
Antiguo 23/09/2015, 09:40
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Variable en array

Código Javascript:
Ver original
  1. var arr = [],
  2.     valor = 123;
  3.  
  4. arr.push(valor);

  #3 (permalink)  
Antiguo 23/09/2015, 10:23
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Y si quisiera insertar el texto literal que contiene mi variable aquí?:
Código Javascript:
Ver original
  1. var pags = {"Resultado de mi consulta"};
Muchas gracias!
  #4 (permalink)  
Antiguo 23/09/2015, 11:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

A ese objeto literal le hace falta un atributo.

Código Javascript:
Ver original
  1. var pags = {ejemplo: "Resultado de mi consulta"};

Luego, solo tendrías que acceder a él mediante la notación por puntos o por corchetes:
Código Javascript:
Ver original
  1. var array = [],
  2.     pags = {ejemplo: "Resultado de mi consulta"};
  3.  
  4. //Por puntos
  5. array.push(pags.ejemplo);
  6.  
  7. //Por corchetes
  8. array.push(pags["ejemplo"]);

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 23/09/2015, 12:31
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Muchas gracias por atender!
No me explique corectamente, mejor dicho, lo que necesito es lo siguiente:
Si yo imprimo el resultado con el valor de mi variable "quebec" después de obtener el resultado con ajax
Código Javascript:
Ver original
  1. document.write(quebec);
Lo que obtengo es lo siguiente:
"7680-DATO1": 0, "9261-DATO2": 0, "DATO3": 0, "DATO4": 0, "DATO5": 0
Y ahora, este resultado es el que quiero insertar aquí:
Código Javascript:
Ver original
  1. var pags = {"7680-DATO1": 0, "9261-DATO2": 0, "DATO3": 0, "DATO4": 0, "DATO5": 0};
para trabajarlo en otra función
Esa es mi duda. Nuevamente les agradezco mucho su atención y espero me puedan ayudar!
  #6 (permalink)  
Antiguo 23/09/2015, 13:10
 
Fecha de Ingreso: enero-2015
Ubicación: Cordoba, Andalucía
Mensajes: 111
Antigüedad: 9 años, 3 meses
Puntos: 15
Respuesta: Variable en array

Código Javascript:
Ver original
  1. var pags = '';
  2.  
  3. for(i=0; i<quebec;++i)
  4. {
  5.     var pags += quebec[i];
  6. }
  #7 (permalink)  
Antiguo 23/09/2015, 14:07
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Cita:
Iniciado por MrGilbertMan Ver Mensaje
Código Javascript:
Ver original
  1. var pags = '';
  2.  
  3. for(i=0; i<quebec;++i)
  4. {
  5.     var pags += quebec[i];
  6. }
Ya lo apliqué, y no, no es lo que necesito, cuando imprimo la variable "quebec", el valor literal que me muestra la pantalla es:
"7680-DATO1": 0, "9261-DATO2": 0, "DATO3": 0, "DATO4": 0, "DATO5": 0

Sin embargo yo quiero insertar ese valor en:
Código Javascript:
Ver original
  1. var pags = {quebec};
y que en vez que devuelva "quebec", devuelva
"7680-DATO1": 0, "9261-DATO2": 0, "DATO3": 0, "DATO4": 0, "DATO5": 0
Que es el valor almacenado en la variable.
De igual manera gracias!
  #8 (permalink)  
Antiguo 23/09/2015, 18:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Necesitas desglosar esa cadena a partir de las comas, formando un array con los valores que vienen siendo los pares clave-valor, luego, recorres ese array resultando y, en cada iteración, separas cada par clave-valor a partir de los dos puntos, de tal forma que la primera parte la usarías como clave y la segunda, como valor. Debes de utilizar el método .split() para realizar las separaciones.

Código Javascript:
Ver original
  1. var cadena = "'foo':'bar','bin':'baz'",
  2.     array = cadena.split(","),
  3.     objeto = {};
  4.  
  5. for (var i = 0, total = array.length, aux; i < total; i++){
  6.     aux = array[i].split(":");
  7.     objeto[aux[0]] = aux[1];
  8. }

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 24/09/2015, 10:02
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Al parecer lo que necesito no es posible en javaScript por que ningún código me ha funcionado(o tal ves no me eh explicado correctamente).
eh intentado los códigos y explicaciones que me han hecho favor de proporcionarme, pero ninguna ha funcionado(o tal ves el error esta entre el teclado y la silla), pero a ver si me explico mejor por que tal ves lo que necesito ni siquiera es posible:
Tengo un código ajax, que hace una consulta en php-mysql y me devuelve el resultado
Código Javascript:
Ver original
  1. var quebec = "";
  2. window.onload = function pagadoras(){
  3.        var consulta;
  4.               //obtenemos el texto introducido en el campo de búsqueda
  5.               consulta = $("#numeroid").val();
  6.               //hace la búsqueda
  7.                   $.ajax({
  8.                     type: "POST",
  9.                     url: "../buscar.php",
  10.                     data: "b="+consulta,
  11.                     dataType: "html",
  12.  
  13.                     error: function(){
  14.                           alert("error petición ajax");
  15.                     },
  16.                     success: function(data){
  17.                           quebec = data;
  18.                       }
  19.               });
  20. }
Como verán, el resultado se almacena en la variable global "quebec":
Código Javascript:
Ver original
  1. success: function(data){
  2.                           quebec = data;
  3.                       }
Tengo otra función que se alimenta así:
Código Javascript:
Ver original
  1. pags = {"DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0};
Ahora, lo que en si necesito es que esta variable "pags" se llene con el valor de mi variable global "quebec", esta imprime el dato así:
Código Javascript:
Ver original
  1. "DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0
y que básicamente haga como si fuese esto:
Código Javascript:
Ver original
  1. pags={"DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0};
pero únicamente pasando el dato asi:
Código Javascript:
Ver original
  1. pags = {quebec};
Es posible?
Nuevamente gracias por su atención y ayuda!
  #10 (permalink)  
Antiguo 24/09/2015, 12:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Exactamente como lo piensas hacer, no es posible. No es sintácticamente correcto. Me pregunto por qué no quieres usar las formas que se te ha sugerido. (?)
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 24/09/2015, 12:35
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Cita:
Iniciado por Alexis88 Ver Mensaje
Exactamente como lo piensas hacer, no es posible. No es sintácticamente correcto. Me pregunto por qué no quieres usar las formas que se te ha sugerido. (?)
En si el problema es que no puedo insertar el contenido de la variable.
Código Javascript:
Ver original
  1. pags= {contenido de variable "quebec"}
eh probado con todas las formas que me han propuesto aquí, sin embargo me devuelve
[object Object] en ves de
"7680-DATO1": 0, "9261-DATO2": 0, "DATO3": 0, "DATO4": 0, "DATO5": 0
La manera más aproximada a lo que necesito ha sido de hecho la que me propusiste, sin embargo la variable me la toma como literal y me devuelve el texto "quebec", que es el nombre de mi variable global, y en si lo que necesito es lo que contiene la variable.
  #12 (permalink)  
Antiguo 24/09/2015, 12:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Obtienes esa respuesta porque esas llaves {} crean un objeto literal. Si deseas ver la cadena tal cual es, quita las llaves o recorre el objeto con un bucle e imprime cada propiedad y valor.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 24/09/2015, 12:59
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Cita:
Iniciado por Alexis88 Ver Mensaje
Obtienes esa respuesta porque esas llaves {} crean un objeto literal. Si deseas ver la cadena tal cual es, quita las llaves o recorre el objeto con un bucle e imprime cada propiedad y valor.
Pero entonces al objeto no se puede insertar el contenido de esa variable?
  #14 (permalink)  
Antiguo 24/09/2015, 13:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

¿De la forma en la que pretendes? No. Como ya te lo dije anteriormente, debes de desglosar esa cadena e ir añadiendo cada atributo y valor al objeto.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 24/09/2015, 13:08
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Cita:
Iniciado por Alexis88 Ver Mensaje
¿De la forma en la que pretendes? No. Como ya te lo dije anteriormente, debes de desglosar esa cadena e ir añadiendo cada atributo y valor al objeto.
De hecho ya no lo intento como te lo expliqué, estoy usando el código que hiciste favor de proporcionarme, y de igual manera me devuelve [object Object]
  #16 (permalink)  
Antiguo 24/09/2015, 13:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Si pretendes imprimir su contenido directamente, es obvio que eso va a ocurrir. Tienes que recorrer el contenido del objeto e ir imprimiendo cada par clave-valor.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #17 (permalink)  
Antiguo 24/09/2015, 14:23
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Variable en array

Una cosa es como se expresa un objeto en javascript y la otra es como se imprime:
Código Javascript:
Ver original
  1. var objeto = {a: 'bla bla', b: 'blu blu'}
  2. document.write(objeto)
te imprime [object Object].

En cambio si escribes
Código Javascript:
Ver original
  1. document.write(objeto.a)
imprime bla bla

Lo que quiere decir que el objeto tiene los datos que debe de tener. El problema es que cualquier objeto al imprimirse muestra [object Object].

Entonces ahora me pregunto qué es lo que quieres. Tienes la variable quebec con el string ese que has mencionado:
Código Javascript:
Ver original
  1. quebec = '"DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0'

1) ¿Quieres que te lo escriba de manera bonita con document.write como si de un JSON se tratara? Pues tan simple como hacer:
Código Javascript:
Ver original
  1. document.write('{' + quebec + '}')
2) ¿Quieres construir un objeto a partir de ese string que hay en quebec?
Pues haz lo que dijo Alexis88. Pero luego no esperes que document.write te imprima el objeto de forma bonita. Pues un objeto en javascript si lo intentas imprimir a pelo te imprime [object Object].

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils
  #18 (permalink)  
Antiguo 24/09/2015, 16:28
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Mas bien el problema esta en que no me supe explicar, me disculpo y me explico:
Lo que actualmente tengo es esto:
Código Javascript:
Ver original
  1. pags={"DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0};
Funciona correctamente y no causa ningún problema, pero agregue un código ajax que hace una consulta en php-mysql y que si imprimo el resultado de esta consulta me devuelve:
Código Javascript:
Ver original
  1. "DATO1":0, "DATO2":0, "DATO3":0, "DATO4":0, "DATO5":0, "DATO6":0, "DATO7":0, "DATO8":0, "DATO9":0, "DATO10":0, "DATO11":0, "DATO12":0, "DATO13":0
Notese que hay más datos,(tengo datos diferentes en mysql que en los que agregue manualmente al objeto, además de que estos cambian según datos ingresados por el usuario) mismos que están almacenados en mi variable global "quebec", no deseo imprimir el resultado de mi variable, lo que en si deseo es que el valor de lo almacenado en "quebec" se inserte en mi objeto "pags".
Gracias por su apoyo y nuevamente una disculpa ya que esta es la primera vez que trabajo javascript con ajax y php.
  #19 (permalink)  
Antiguo 25/09/2015, 09:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Si la respuesta que recibes es una cadena, entonces, tienes que aplicar la forma que te expliqué más arriba, pero si recibes un JSON, solo tendrás que recorrerlo e ir añadiendo cada par clave-valor al objeto inicial.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #20 (permalink)  
Antiguo 25/09/2015, 15:40
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Variable en array

Cita:
no deseo imprimir el resultado de mi variable, lo que en si deseo es que el valor de lo almacenado en "quebec" se inserte en mi objeto "pags".
Lo de Alexis88 no me convence, pues deja sin parsear comillas y posibles espacios.

Prueba esto:
Código Javascript:
Ver original
  1. pags = JSON.parse('{' + quebec + '}')

Un saludo!

PD.: De todas formas, si tienes acceso al código PHP yo lo modificaría y no devolvería ese string. Yo almacenaría los datos en un array asociativo de PHP y luego con la función json_encode los convertiría en un json y con las cabeceras correspondientes indicando que se trata de un json.

Luego la petición ajax de jquery creo que inteligentemente convierte ese JSON en un objeto y no tendrías que hacer nada.
__________________
github.com/xgbuils | npm/xgbuils

Última edición por Pantaláimon; 25/09/2015 a las 15:53
  #21 (permalink)  
Antiguo 25/09/2015, 16:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Variable en array

Si solo habrán números obtenidos de la BD, como veo que es, no creo que sea necesario parsearlos. De cualquier forma, es mejor devolver un JSON que una cadena.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #22 (permalink)  
Antiguo 29/09/2015, 16:43
 
Fecha de Ingreso: octubre-2014
Mensajes: 63
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Variable en array

Cita:
Iniciado por Pantaláimon Ver Mensaje
Lo de Alexis88 no me convence, pues deja sin parsear comillas y posibles espacios.

Prueba esto:
Código Javascript:
Ver original
  1. pags = JSON.parse('{' + quebec + '}')

Un saludo!

PD.: De todas formas, si tienes acceso al código PHP yo lo modificaría y no devolvería ese string. Yo almacenaría los datos en un array asociativo de PHP y luego con la función json_encode los convertiría en un json y con las cabeceras correspondientes indicando que se trata de un json.

Luego la petición ajax de jquery creo que inteligentemente convierte ese JSON en un objeto y no tendrías que hacer nada.
De hecho json esta devolviendome el dato justo como lo necesito, con el encabezado y el json_encode bastó!

Muchas gracias a todos por su apoyo!!!!

Etiquetas: ajax, funcion, html, php, valor, variable
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 03:18.