Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 12-mar-2008, 18:04   #1 (permalink)
cyber-bot- ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2004
Mensajes: 40
Enviar un mensaje por MSN a cyber-bot- Enviar un mensaje por Yahoo  a cyber-bot-
Recoger valores de selec multiple

Como les va , la verdad que he tenido mas de tres dias intentandoo de todo y no he logrado hacerlo, por favor si alguien sabe como, agradeceria mucho la ayuda.

Mi problema es el siguiente tengo una funcion que trabaja exelente con ajax el problema que si al formulario se le agrega una lista menu multiple no tengo ni idea de como pasar los valores a ajax para que sean enviado como variable.

Aqui esta mi funcion.
Código HTML:
function actualiza_datos(){
	//donde se mostrará lo resultados
	divContenido = document.getElementById('contenido');
	//valores de los cajas de texto
	nombres=document.myForm2.nombres.value;//
	apellidos=document.myForm2.apellidos.value;//
	deportes=document.myForm2.elements['deportes[]'].value;// este no funciona
	nacionalidad=document.myForm2.nacionalidad.value;//
	lis_niveles=document.myForm2.elements['lis_niveles[]'].value;// este no funciona
	seccion=document.myForm2.seccion.value;//
	usuario=document.myForm2.usuario.value;//
	clave=document.myForm2.clave.value;//
	pag=document.myForm2.pag.value;//
	//instanciamos el objetoAjax
	ajax=objetoAjax();
	//usando del medoto POST
	//archivo que realizará la operacion ->actualizacion.php
	ajax.open("POST", "list_docente.php",true);
	divContenido.innerHTML= '<img src="http://www.forosdelweb.com/images/ajax-loader.gif">';
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			//mostrar los nuevos registros en esta capa
			divContenido.innerHTML = ajax.responseText

		}
	}
	//muy importante este encabezado ya que hacemos uso de un formulario
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	//enviando los valores
	ajax.send("nombres="+nombres+"&apellidos="+apellidos+"&deportes="+deportes+"&nacionalidad="+nacionalidad+"&lis_niveles="+lis_niveles+"&seccion="+seccion+"&usuario="+usuario+"&clave="+clave+"&pag="+pag)
}
mis selesct multiples son de tipo
<select name="deportes[]" size="3" multiple="multiple" class="textboxselectlargo" id="deportes[]" >
<option value=1>natacion</option>
<option value=2>futbol</option>
etc
Desde ya gracias por la ayuda
__________________
El conocimiento es mi adicción y la programación mi pasión
:adios:
cyber-bot- está desconectado   Responder Citando
Antiguo 12-mar-2008, 21:14   #2 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 13.958
Re: Recoger valores de selec multiple

Hola cyber-bot, puedes usar mi script: APORTE: Selects Dependientes con Prototype (AJAX), y crear tu select y rescatar los elementos:
Código:
var sel = new HTMLSelect( 'deportes[]' );
var selectedOptions = sel.getSelectedOptions();
Eso te regresa un Arreglo con todas las opciones, si las quieres por decir en una lista separada por comas puedes hacer:
Código:
var selectedOptions = sel.getSelectedOptions().join(",");
Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 14-abr-2008, 11:04   #3 (permalink)
oabareload no se puede cailificar en este momento
 
Avatar de oabareload
 
Fecha de Ingreso: junio-2006
Ubicación: Distrito Federal, México
Mensajes: 58
Re: Recoger valores de selec multiple

Código HTML:
function enviarFormulario(url, formid, divid)
    {
        cargando();
        var cadenaFormulario = "";
        var Formulario = getElmById(formid);
        var longitudFormulario = Formulario.elements.length;
        for (var i = 0; i < longitudFormulario; i++)
            {
                if (Formulario.elements[i].tagName == "SELECT")
                    {
                        for (y=0; y < Formulario.elements[i].options.length; y++)
                            {
                                if (Formulario.elements[i].options[y].selected)
                                    {
                                    cadenaFormulario += Formulario.elements[i].name +"="+escape(Formulario.elements[i].options[y].value)+"&";
                                    }
                            }
                    }
                else
                    {
                        if (Formulario.elements[i].type=='checkbox')
                            {
                                    if (Formulario.elements[i].checked == true)
                                        {
                                            cadenaFormulario += Formulario.elements[i].name +"="+escape(Formulario.elements[i].value)+"&";                                            
                                        }
                            }
                        else
                            {
                                cadenaFormulario += Formulario.elements[i].name + "=" + escape(Formulario.elements[i].value) + "&";
                            }
                    }
            }
        var peticion = nuevoAjax();
        peticion.open("POST", url, true);
        peticion.onreadystatechange = function()
            {
                if (peticion.readyState == 4)
                    {
                        if (peticion.status && peticion.status == 200 && !peticion.error)
                            {
                                var obj = getElmById(divid);                                
                                txt=unescape(peticion.responseText);
                                obj.innerHTML = txt;
                                return;                   
                            }
                        else
                            {
                                estado(peticion.status,peticion.statusText);
                                return;
                            }
                    }
            }
        peticion.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        peticion.send(cadenaFormulario);
        return false;
    }
Esa es mi función que he logrado crear a lo largo del tiempo, solo le falta leer los optionbox... y ya... espero te sirva... dudas... me preguntas...
oabareload está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 11:34.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93