Foros del Web » Programando para Internet » Javascript »

Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP

Estas en el tema de Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP en el foro de Javascript en Foros del Web. Saludos a todos, tal vez el titulo les sugiera tremendo enrredo pero en cuestion es facil de entender. La cuestion es que estoy trabajando en ...
  #1 (permalink)  
Antiguo 04/08/2011, 10:41
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 1
Pregunta Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP

Saludos a todos, tal vez el titulo les sugiera tremendo enrredo pero en cuestion es facil de entender. La cuestion es que estoy trabajando en mi aplicacion con arquitectura de tres capas, es decir, una capa HTML, otra JAVASCRIPTy otra PHP, la uso valiendome del ajax para procesar mis formularios.

Tengo un FORM que contiene varios checkboxes que se generan dinamicamente con PHP. Los checkboxes se llaman "nombre[]" para luego recogerlos como arreglo desde PHP, pero antes de llegar a PHP deben pasar por una funcion JAVASCRIPT que los capture y envíe a PHP, Y AHI ESTA MI DUDA!!!!

Resumiendo:
1. Checkboxes con nombre "nombre[]" en HTML
2. Al ejecutar el FORM Capturarlos con JAVASCRIPT
3. Enviarlos por POST a Clase_PHP.php

Espero me puedan dar sugenerncias y gracias de antemano por el interes.
Saludos.
  #2 (permalink)  
Antiguo 04/08/2011, 10:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP

buenas,
¿podrías mostrar como lo estas intentando? de todos modos, básicamente tienes que registrar el evento onsubmit al formulario para poder trabajarlo con javascript. una vez en el ámbito de javascript, debes recorrer por todos los campos del formulario que quieras enviar e ir componiendo una query string de parametros nombre=valor&etc. es decir, una query similar a las que se envia mediante GET (visible en la barra de direcciones del navegador). seguido creas un objeto XMLHttpRequest y lo inicias (metodo, url a enviar, modo sincronización, cabeceras, etc). próximo, lo envias con la query construida anteriormente. y finalmente, debes cancelar el evento de envio del formulario para que el navegador no realice la acción defacto.

esta bien resumido, pero en realidad tienes que saber como manejarte por los formulario. adicionalmente, como inicializar un objeto XMLHttpRequest, y manejar eventos.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 04/08/2011, 12:38
 
Fecha de Ingreso: junio-2010
Mensajes: 59
Antigüedad: 13 años, 10 meses
Puntos: 1
Respuesta: Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP

Gracias por tu atencion te voy a mostrar como estoy trabajando.


1. En Pagina.php tengo (HTML):


<script type="text/javascript" src="listar.js" charset="utf-8"></script>


<form onSubmit="sentform_updatepages(); return false;" name="form_update_pages" autocomplete="off">

<tabla>

*** AQUI SE GENERAL LAS FILAS DE LA TABLA DINAMICAMENTE ***

<input name="publica[]" type="checkbox" value="$id" />

************************************************** ****

</tabla
</form>


2. En listar.js tengo los siguiente:

// CREAR OBJETO AJAX
function nuevoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}


function sentform_updatepages(){

ajax=nuevoAjax();

if(document.form_update_pages.action.value == 'update_pages'){

// Capturar los Campos

**** AQUI SE DEBE CAPTURAR LOS VALORES DE CADA CHECK ****

publica = ?????????

c = document.getElementById('mensaje1');

c.innerHTML = "<img src='../../images/body/default/icons/loader.gif' border='0' align='absmiddle'>";


ajax.open("POST", "class_insertar.php",true);
ajax.onreadystatechange=function() {

if (ajax.readyState==4){

alert(ajax.responseText);
document.location = 'Pagina.php';

}

}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("publica="+publica);

}

}


3. En class_insertar.php capturo lo que viene por POST.
  #4 (permalink)  
Antiguo 04/08/2011, 14:18
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Capturar Arreglo HTML con JAVASCRIPT y luego enviarlo a PHP

solo te falta construir el query. como ya habia comentado, tienes que manejarte por los campos del formulario. o bien puedes usar otros métodos para capturar especificamente la parte que te interesa. por ejemplo, puedes usar getElementsByName para obtener una colección de todos los elementos con un nombre particular, en tu caso publica[]. luego tienes que iterar esa colección para determinar cuales campos estan marcados. dentro de ese bucle vas construyendo los parámetros de forma tal que debes indicar el nombre del parametro, el signo igual (=), el valor del campo, y un ampersand (&). por ejemplo, nombre[]=valor0&nombre[]=valor1&nombre[]=valorX. fijate que al final no tiene un ampersand. por supuesto, el query lo vas construyendo manipulando el string, es decir concatenando string. luego en el metodo send de ajax simplemente indicas la variable donde has creado el query. en el código estas concatenando un string con una variable. no lo tienes que hacer así, simplemente pasas la variable.

nota: por favor, utiliza etiquetas bbcode para códigos cuando presentes código. especialmente si es extenso. con las etiquetas apropiadas facilita la lectura y copiado del código.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: html, php, formulario, arreglos
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 23:04.