Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ejecutar función dinámica de onjetos dinámicos

Estas en el tema de Ejecutar función dinámica de onjetos dinámicos en el foro de Frameworks JS en Foros del Web. Estimados, estoy creando un <SELECT> de manera dinámica, por javascript pero además una vez creado debo llenarlo con una función Ajax, pero no puedo hacer ...
  #1 (permalink)  
Antiguo 03/05/2011, 08:35
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
Ejecutar función dinámica de onjetos dinámicos

Estimados, estoy creando un <SELECT> de manera dinámica, por javascript pero además una vez creado debo llenarlo con una función Ajax, pero no puedo hacer que se ejecute.

Que estoy haciendo mal?? ( a parte de programar XD)

creo el control
Código:
 
return '<select style="width:' + control.width + '" type ="text" id="' + control.name + '" name="' + control.name + '">' + control.funcion+ '</select>'; 
control.funcion es lo que debería retornar los tags Option del SELECT

Código:
function cargaUnidadesConfiguracion(){
var option;
var param1 = $("#param1").val();
var param2 = $("#param2").val();
try{
 
$.ajax({
async: true,
type: 'POST',
url: "laURL" ,
data:"{'param1':'" + param1 + "', 'param2':'" + param2 + "'}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
error : function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText); },
success: function(jsondata)
{
try
{
items = eval('(' + jsondata.d + ')');
}
catch (ex)
{
items = eval('(' + jsondata + ')');
}
try
{
 
$("#dropSELECT").children().remove();
$("#dropSELECT").append('<option value="">-- Seleccione Opción --</option>');
for (i = 0; i < items.length; i++) {
$("#dropSELECT").append('<option value="' + items[i].Num_opcion + '">' + items[i].RefOpcion +'</option>');
} 
 
}catch (ex) 
{
var error =ex;
}
}
});
 
}
catch (ex)
{
var msg = ex; 
}
} 

pero cuando ejecuto la web en el drop me aparecen como opciones

-- Seleccione Opción --
' + items[i].RefOpcion + '


con lo que intuyo que no se ejecuta el Ajax... alguna idea de lo que ocurre??



como dato adicional, llame a la función desde un boton y me cargó los datos... con lo cual detemrino que es cuando lo creo de forma dinámica que tengo el problema
__________________
Buena Vida...
Francisco

Última edición por Bluesman74cl; 03/05/2011 a las 08:43 Razón: Agrego información
  #2 (permalink)  
Antiguo 03/05/2011, 11:29
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Ejecutar función dinámica de onjetos dinámicos

Hola!, viendo la necesidad de tu código, no es necesario crear tanto código fuente que resulta ser algo tedioso siendo que se puede simplificar mucho.

La función cargarUnidadesConfiguracion() para mí es mejor que la dejes de esta forma:

Código:
function cargaUnidadesConfiguracion(){
var param1 = $("#param1").val();
var param2 = $("#param2").val();

$.post("php.php","param1:"+param1+",param2:"+param2,function(r){
  $("#dropSELECT").children().remove();
  $("#dropSELECT").append('<option value="">-- Seleccione Opción --</option>');
  $("#dropSELECT").append(r);
});
}
Saludos!
  #3 (permalink)  
Antiguo 03/05/2011, 11:55
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
Respuesta: Ejecutar función dinámica de onjetos dinámicos

angelfcm estuve revisando tu código y aunque se ve bastante simplificado, cosa que me gustó, no funcionó... ha de ser porque utlizo .Net y no PHP , por lo cual debo llamar a la función de un metodo web...


A todo esto que vendría siendo r?
__________________
Buena Vida...
Francisco
  #4 (permalink)  
Antiguo 03/05/2011, 20:07
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Ejecutar función dinámica de onjetos dinámicos

Hola, es un script de cliente lo cuál no hay diferencia de que tipo de lenguaje de servidor uses ya sea PHP, ASP, Phyton, etc. yo lo probé y funcióna correctamente a lo mejor te falto colocar algo que yo no se que tu tienes. Mejor muestra todo el codigo completo para saber dónde necesita ser modificado, también puedes decirme dónde se genera el error, Saludos!
  #5 (permalink)  
Antiguo 03/05/2011, 23:43
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: Ejecutar función dinámica de onjetos dinámicos

Hola io hace un tiempo, desarrolle una funcion muy parecida al tuya... espero y la perfecciones..


// js
Cita:
function selecList(typeList, list){
/* ajax.php?pag=selecList :: obtiene los valores en formato Json */
$.getJSON('ajax.php?pag=selecList',{typeList:typeL ist}, function(data){
var str = "";
$(list+' option:selected').each(function(){
str += $(this).text();
});
$(list+' option').each(function(i, val){
if(str != $(val).text()){
$(list+' option[value='+$(val).text()+']').remove();
}
});
for(var x = 0; x < data.length; x++) {
if(str != data[x].element_code){
$(list).append($('<option value="'+data[x].element_code+'">'+ data[x].element_code +'</option>'));
}
}
})
}
// html


/*

typeList = valor que envia, a una consulta que muestra solo usurios de nivel administradores, basicamente lo que hace es enviar un valor, para que este se obtenga ciertos atributos usando el where, por ejemplo
select * from usuarios where usuario='administradores' --->
puede pasarce tambien administradores dependiendo del valor que tengas que mostrar.

list = donde se va a mostrar los registros, obtenidos.

*/


Cita:
$(function(){
selecList('administradores','#administradores')
});

Última edición por livemusic; 04/05/2011 a las 00:22
  #6 (permalink)  
Antiguo 04/05/2011, 07:31
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Ejecutar función dinámica de onjetos dinámicos

podés publicar el json que recibes?
  #7 (permalink)  
Antiguo 04/05/2011, 14:33
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Ejecutar función dinámica de onjetos dinámicos

Que tal!
Es inusual usar JSON cuándo lo único que hacen es enviar pocos datos (en este caso 2) ya que JSON es conveniente cuándo vas a hacer distintas funciones al recibir o enviar datos. Pero en este caso sólo estan enviando dos datos y recibiendo un grupo de <option> que van dentro de un <select>. Es más sencillo y cómodo usar $.post() en estos casos.
Saludos
  #8 (permalink)  
Antiguo 04/05/2011, 15:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Ejecutar función dinámica de onjetos dinámicos

no estoy de acuerdo
Si solicitas una lista de datos en json, por ejemplo "id" y "nombre" de usuarios, vas a poder armar una lista con option, con li, con tablas, solo con texto, etc. es más flexible, en cambio si recibis html y en otra pantalla te piden que muestres los usuarios en una lista, que vas a hacer? diferentes salidas?
No importa si son pocos o muchos datos.
  #9 (permalink)  
Antiguo 04/05/2011, 15:46
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: Ejecutar función dinámica de onjetos dinámicos

Claro que para el ejemplo que acabas de mencionar es buena opción, pero para lo que se necesita en esta publicación no es necesario hacer "código de más".
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:00.