Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2006
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
Cool Formulario

hola,

quiero hacer un pequeño formulario, donde haya una serie de checkboxes y un boton que cuando le de, se vaya a una funcion, que compruebe que hay al menos un checkbox seleccionado, que consulte en la base de datos aquellos campos que he seleccionado con los checkboxes y los muestra por pantalla. pero no se como hacerlo, el resultado de la consulta quiero que se muestre en el misma página, es decir, debajo del formulario.

Gracias
Responder Con Cita
  #2  
Antiguo 29-09-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Hola halizia, si lo que deseas es que los datos se muestrn abajo del formulario deberás hacer uso de Ajax, ya que es la única forma(al menos que conozco) en que puede interactuar php-javascript, ya que el primero será el que haga la conexión a la base de datos y el último validará los checkboxes.

Ajax no es nada complicado, puedes revisar este truco que he colocado en la sección de trucos del club en el cual muestro como crear un pequeño formulario de contacto utilizando Ajax.

El formulario podría ser así:
Código:
<form name="frm">
   <input type="checkbox" name="checkbox1" value="1" />Checkbox1<br>
   <input type="checkbox" name="checkbox2" value="2" />Checkbox2<br>
   <input type="checkbox" name="checkbox3" value="3" />Checkbox3<br>
   <input type="button" name="button" value="Enviar" onClic="validar();" />
</form>
Para poder validar los checkboxes, como ya dije antes, necesitas hacer uso de javascript, que mas o menos sería de la siguiente manera:

Código:
function validar(){
   if (document.frm.checkbox1.checked==true || document.frm.checkbox2.checked==true || document.frm.checkbox3.checked==true){
       enviar();
   } else {
       alert('Debes seleccionar al menos una casilla');
   }
}
Ahora que ya has validado el formulario, si al menos hay un checkbox seleccionado, hará la llamada a la función enviar, en el cual tendrás que recoger los datos de los checkbox activos y enviarlos a el script php que se conectará a la base de datos y te devolverá los datos que deseas, lo cual se podrá hacer de la siguiente manera:

Código:
var obj;
var div;
var pVars;
function crearObjeto() {
        if (window.XMLHttpRequest) {       
                return new XMLHttpRequest();
        } else if (window.ActiveXObject) {
                return new ActiveXObject("Microsoft.XMLHTTP");
        }
}

function procesar(){
   pVars  = '&cb1='+encodeURI(document.frm.checkbox1.checked);
   pVars += '&cb2='+encodeURI(document.frm.checkbox2.checked);
   pVars += '&cb3='+encodeURI(document.frm.checkbox3.checked);
   
   obj=crearObjeto();
   obj.onreadystatechange = cambio;
   obj.open("POST",'script.php', true);
   obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   obj.send(pVars);
}
function cambio(){
   div = document.getElementById("rdiv");
   if(obj.readyState == 4){
      div.innerHTML = obj.responseText;
   } else {
      div.innerHTML='Cargando...';
   }
}
Recuerda que deberás colocar un div con el id "rdiv" en el lugar que desees que se muestre el resultado, ya que a este se le agregará el resultado obtenido por la consulta a la bas e de datos.

Ahora, en el script php deberás tomar los datos enviados utilizando el método post, mas o menos de la siguiente manera:
Código PHP:
<?php
$cb1 
$_POST['cb1'];
$cb2 $_POST['cb2'];
$cb3 $_POST['cb3'];

/* 
Aquí has la consulta y luego has que se muestre el resultado que desees.
*/
?>
No he tenido la oportunidad de probarlo, pero si algo anda mal avísame y miramos que es.

Espero te sirva de algo.
Saludo.
Responder Con Cita
  #3  
Antiguo 02-10-2006
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
Gracias por tu ayuda, pero me da error, yo lo he puesto todo en un mismo fichero y no hace nada :S
Responder Con Cita
  #4  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Arriba, el compañero Darwin, no ha tratado de ponerte un ejemplo "que funcione", sino más bien, darte una serie de ideas válidas para que tú pudieras continuar adelante. Es decir, no se trataba de copiar y pegar el código en un archivo: eso no va a funcionar, obviamente.

Ayer topé con una traducción al español de cierto artículo sobre AJAX... tal vez quisieras echarle un vistazo.

Por otro lado, en estos Foros, decir que algo "te da error" y que "no hace nada" no significa mucho, más bien todo lo contrario.

Siempre hay mensajes de error (o casi siempre, vaya) y los programas siempre hacen algo (o casi siempre) aunque no sea lo que esperamos. Si pretendes conseguir ayuda, por favor, expláyate y describe el problema lo mejor que puedas.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 02-10-2006
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
pues siento decirte q no hace nada
ejecuto el fichero, despues de arreglar algun que otro fallo, y al pulsar el boton (habiendo señalado previamente algun checkbox)no muestra ninguna advertencia ni escribe nada en pantalla.

Saludos
Responder Con Cita
  #6  
Antiguo 02-10-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Hola halizia, porque no pones todo el código del fichero que has creado con lo que doy arriba para revisarlo y ver que es lo que está dando problema.

Saludos.
Responder Con Cita
  #7  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo añadiría que si el error "no se ve"... tendremos que intentar que esto no ocurra así. En Firefox (que es el navegador en que suelo probar este tipo de cosas) cuentas con extensiones que te facilitan la tarea de desarrollo, y, entre otras, está FireBug, que, probablemente, te ofrecerá información sobre errores (además de otras cosas) que, aparentemente, acaso, no se muestran.

Me consta que para otros navegadores existen otras herramientas, o que, en todo caso, pueden configurarse los navegadores para que fuerzen los errores de JavaScript, por ejemplo,... tendrías que investigar un tanto sobre esto: cómo depurar errores de JavaScript en los navegadores que suelas utilizar.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 02-10-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Ahora que lo mencionas David, creo que todos los navegadores traen con sigo una "Consola Javascript" desde la que se pueden ver las advertencias, errores, etc... del lenguaje.

En mi firefox se encuentra en "Tools->JavaScript Console"

Saludos.
Responder Con Cita
  #9  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Darwin
Ahora que lo mencionas David, creo que todos los navegadores traen con sigo una "Consola Javascript" desde la que se pueden ver las advertencias, errores, etc... del lenguaje.

En mi firefox se encuentra en "Tools->JavaScript Console"
Sí, así es la verdad; sin embargo, me parece (no estoy seguro) que a veces esa consola puede "desactivarse" o algo así... o desactivarse, en todo caso, los errores de JavaScript. En todo caso existen ciertas herramientas (para FireFox existe incluso un depurador "a lo grande" para JavaScript, ahora, un servidor no supo cómo sacarle partido, lo que no quiere decir que sea malo, tal vez todo lo contrario), digo, que además de la consola pueden emplearse otras herramientas en las que apoyarnos: en el caso de Firefox existen extensiones muy, muy curiosas: véase Web Developer.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 02-10-2006
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Cita:
Empezado por dec
Jejejej, instalada desde que la mencionaste hace algunas semanas.

Saludos.
Responder Con Cita
  #11  
Antiguo 02-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Darwin
Jejejej, instalada desde que la mencionaste hace algunas semanas.
Y ya no podrás vivir sin ella...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Se ve el formulario jorllazo Varios 2 25-09-2006 19:11:48
Formulario fevimo PHP 3 21-09-2006 20:30:32
Formulario MDI e Hijos chux OOP 7 07-12-2005 21:19:14
pasar datos de un formulario vista a cualquier formulario @-Soft OOP 2 28-09-2004 21:56:01
formulario MDI joanajj Varios 5 24-07-2004 01:50:37


La franja horaria es GMT +2. Ahora son las 09:41:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi