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

Pasar un arreglo al AJAX

Estas en el tema de Pasar un arreglo al AJAX en el foro de Frameworks JS en Foros del Web. Que tal, estoy haciendo un sistema de envío de correos, para lo cual, los correos que el usuario vá registrando el enviar, se van guardando ...
  #1 (permalink)  
Antiguo 15/08/2006, 16:21
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 8 meses
Puntos: 0
De acuerdo Pasar un arreglo al AJAX

Que tal, estoy haciendo un sistema de envío de correos, para lo cual, los correos que el usuario vá registrando el enviar, se van guardando en un list del lado derecho. Del lado izquiedo hay un textarea en el cual se van insertando los correos a enviar.

La idea es que el usuario pueda seleccionar tantos correos como deseé y al hacer click sobre un botón, estos se carguen en el textarea.

El problema es que al hacerlo, solo pasa el último de los correos elegidos en el list y no el arreglo.

envio.php
Código PHP:
function Cambiar()
{        
        
datos document.getElementById('list_correos[]').value;
        list = 
document.getElementById('txtcorreo').value;
        
contenedor document.getElementById('espacio');
        
ajax=nuevoAjax();
        
ajax.open("GET""xcorreo.php?d1="+datos+"&txtcorreo="+list,true);
        
ajax.onreadystatechange=function() 
        {
        if (
ajax.readyState==4
        {
contenedor.innerHTML ajax.responseText
        
}
        }
        
ajax.send(null)

En esa función, el areglo debería ir en la variable "datos", mientras que la variable "list" lleva el contenido del textarea con los correos ya ingresados a mano.

xcorreo.php
Código PHP:
$mail[]=$_GET["d1"];
$lista=$_GET["txtcorreo"];

 foreach ( 
$mail as $v )
{
 
$busca="SELECT `correo` FROM correoempresa WHERE id =$v";
 
$xbusca=mysql_query($busca);
 list(
$correo)=mysql_fetch_row($xbusca);
 
$l.=$correo.',';
 }
?> 
Y en xcorreo lo unico que quiero hacer es que lea cada elemento del arreglo y lo concatene, pero como repito, solo trae el ultimo elemento, no todo el arreglo.

Saludos!
  #2 (permalink)  
Antiguo 29/08/2006, 15:27
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
aqui tienes problemas de js....
mira, hazlo así:

Código PHP:
myemails document.getElementById("txtcorreo").value
.

.
.
//aqui envias los emails seprados por comas, ejm: [email protected],[email protected],correon@dominio

Código PHP:
ajax.open("GET""xcorreo.php?txtcorreo=" myemailstrue); 

luego en el php haces esto (xcorreo.php):

Código PHP:
$misemails = isset($_GET["txtcorreo"]) ? $_GET["txtcorreo"] : "";
$misemails_a explode(","$misemails); 

//en la primera variable ($misemails) te vienen los emails concatenados que al parecer es lo que quieres....
//en la segunda variable ($misemails_a) te vienen los emails separados en un arreglo.. el cual podras usar facilmente con un for... como quieras....

espero que te ayude esto....

saludos
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #3 (permalink)  
Antiguo 15/09/2006, 13:52
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 8 meses
Puntos: 0
Hola.

Lo que pasa es que el elemento que contiene los correos es un <select>, representado por datos = document.getElementById('list_correos[]').value;

El elemento que tu me mencionas si es una caja de texto que vá concatenando los correos que se van agregando. Cuando el usuario elige un elemento de la lista y aprieta el botón, ese elemento se concatena en la caja de texto , pero yo lo que quiero es que el usuario pueda elegir varios elementos de la lista, que ya hice multiple, y que al presionar el botón, ese arreglo me lleve todos los elementos seleccionados y pueda entonces hacer el foreach para concatenar todos.

El problema es que el arreglo de alguna manera no es arreglo sino que solo me muestra el ultimo elemento seleccionado.

Saludos!!
  #4 (permalink)  
Antiguo 20/07/2009, 18:05
 
Fecha de Ingreso: marzo-2005
Mensajes: 6
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Pasar un arreglo al AJAX

Espero que te sirva.

Saludos.

<html>
<body>
<head>
<script type="text/javascript">
function XXX() {
document.getElementById("grabar").onclick = function()
{
var arreglo = new Array();
var vDatos = document.getElementById("datos");
var numOpciones = vDatos.options.length;
for (var i=0; i<numOpciones; i++)
{
var valor = vDatos.options[i];
if (valor.selected)
{
arreglo.push(valor.value);
}
}
var cadena = arreglo.join(",");
alert(cadena);
}
}

</script>
</head>
<form>
<select name="datos" id="datos" size="4" multiple>
<option value="uno">uno</option>
<option value="dos">dos</option>
<option value="tres">tres</option>
<option value="cuatro">cuatro</option>
</select><br>
<input type="button" name="boton" id="boton" value="valor(es)" onClick="XXX(datos); return false ">
</form>
</body>
</html>
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:16.