Ver Mensaje Individual
  #14 (permalink)  
Antiguo 16/09/2010, 18:18
miguelangel23
 
Fecha de Ingreso: diciembre-2009
Mensajes: 82
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda_Formulario_PHP

Muchas gracias silvanha y mortiprogramador por la ayuda prestada. A ti silvanha, gracias por haberme mandado ese topic,por este pude entender un poco más la consulta,la cual la modifique y mejoré por los ejemplos que decian en tu topic

A ti mortiprogramador, tambien te doy gracias ya que era verdad lo que dijiste, me faltaba cambiar el nombre del "id" de mi select(tiposervicio) por el nombre de "campo1".De esa manera funcionó mi consulta y me mostró las opciones que deberian mostrarme. Lo mismo era para el tercer combo,cambiar el nombre del "id",hacer la consulta parecida y listo.Ya me funcionan los tres combos.

Pero,ahora,les pido de nuevo su ayuda. Como les mencioné ya me aparecen las opciones q deberian mostrarme en los combos al momento de seleccionar.En lo que quiero q me ayuden,ustedes dos o otras personas de este gran foro es en lo sgte:
Ustedes saben que tengo tres combos,lo q quiero es que cuando yo seleccione en el primer combo una opcion,por ejemplo,Servicios,en el segundo combo me aparezcan las opciones de Servicios Públicos,Servicios Profesionales,Publicidad(ya me sale esto,pero lo escribo para que me puedan entender ) y ademas, automaticamente,en el tercer combo me aparezcan las opciones que le corresponden,en este caso de ejemplo, a Servicios Publicos (me aparece primero en el segundo combo),las cuales son: Luz,Agua y Alcantarillado,Cable,Internet,Telefonía Fija,Telefonía Móvil,Monitoreo de Alarma.

Y asi sucesivamente debe funcionar con las demas opciones de mi tabla.

¿Cómo haria eso?? Espero me haya dejado entender.

A continuacion les dejo las url's de las capturas de imagen que hize de mi tabla,en la cual se encuentran los datos.
Código:
http://www.image-share.com/ijpg-356-100.html
http://www.image-share.com/ijpg-356-101.html
http://www.image-share.com/ijpg-356-102.html
http://www.image-share.com/ijpg-356-103.html
http://www.image-share.com/ijpg-356-104.html
http://www.image-share.com/ijpg-356-105.html
Además,les vuelvo a adjuntar el codigo,el cual ya me muestras las opciones correspondientes para cada combo:
Formulario:
Código:
<tr cellspacing="0" class="ewTable">
				<form action="#" method="post" onsubmit="return buscarcliente()">
				<td width="130" class="ewTableHeader">Tipo : </td>
				<td colspan="3"><select  id="movimiento1" onchange='mostrar_descripcion()' name="servicio">				
					<?php foreach($array_movimientotipo as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
					</select>
				</td>
				</form>
			</tr>
			
			<!--<tr>
				<td class="ewTableHeader">Campo 1 : </td>
				<td colspan="3"><select  id="area" onchange='mostrar_conceptos()' name="concepto">				
					<?php foreach($array_categoria as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
					</select>
				</td>
			</tr>-->
			<tr>
				<td class="ewTableHeader">Sub-Tipo : </td>
				<td colspan="3"><select  id="movimiento2" onchange='mostrar_detalle_servicios()' name="movimiento">				
					<?php foreach($array_movimientotipo1 as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>}
					</select>
				</td>
			</tr>
			<tr>
				<td class="ewTableHeader">Detalle : </td>
				<td colspan="3"><select  id="detalle" name="detalle">
					<?php foreach($array_movimientotipo2 as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
					</select>
				</td>
			</tr>
Function mostrar_descripcion():(javascript)
Código:
function mostrar_descripcion()
{
	movimiento1=$("#movimiento1").attr("value");
	$.ajax({ type: "GET", url: "funciones/operacion/mostrar_descripcion.php?movimiento1="+movimiento1,
	data: null,	  success: function(data){ 
	document.getElementById("movimiento2").parentNode.innerHTML=data;
	//calcularmontos_concepto()
	}	});
}
mostrar_descripcion.php:
Código:
<?php	session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo();  //creamos el objeto movimientotipo

if(conexion::is_administrador()==1){ 
$o_movimientotipo->setFiliacion($_GET['movimiento1']);
}
else {
$o_movimientotipo->setFiliacion($_SESSION['ssrol']); }

$o_movimientotipo->cargar_combo_primera_descripcion();
$array_movimientotipo=$o_movimientotipo->arrayconsulta();	?>

<select id="movimiento2" onchange='mostrar_detalle_servicios()' name="movimiento">
<?php if(count($array_movimientotipo)>0) { ?>
<?php foreach($array_movimientotipo as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach; ?> 
<?php } ?>
</select>
function mostrar_detalle_servicios() (javascript)
Código:
function mostrar_detalle_servicios()
{
	
	movimiento2=$("#movimiento2").attr("value");
	$.ajax({ type: "GET", url: "funciones/operacion/mostrar_detalle_servicios.php?movimiento2="+movimiento2,
	data: null,	  success: function(data){ 
	document.getElementById("detalle").parentNode.innerHTML=data;
	//calcularmontos_concepto()
	}	});
}
mostrar_detalle_servicios.php
Código:
<?php	session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo();  //creamos el objeto movimientotipo

if(conexion::is_administrador()==1){ 
$o_movimientotipo->setFiliacion($_GET['movimiento2']);
}
else {
$o_movimientotipo->setFiliacion($_SESSION['ssrol']); }

$o_movimientotipo->cargar_combo_segunda_descripcion();
$array_movimientotipo=$o_movimientotipo->arrayconsulta();	?>
<select id="detalle" name="detalle">
<?php if(count($array_movimientotipo)>0) { ?>
<?php foreach($array_movimientotipo as $a) :?><option  value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach; ?> 
<?php } ?>
</select>
Por ultimo,mi clase movimientotipo.php,en la cual se encuentran las funciones en las cuales hago la consulta correspondiente.
Código:
<?php
	require_once("conexion.php");

class movimientotipo
{
	private $id;
	private $nombre;
	private $filiacion;
	private $devolucion;
	private $observacion;
	private $tipo;
	
	public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getNombre() {
        return $this->nombre;
    }

    public function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    public function getFiliacion() {
        return $this->filiacion;
    }

    public function setFiliacion($filiacion) {
        $this->filiacion = $filiacion;
    }
	
	public function getDevolucion() {
		return $this->devolucion;
	}
	
	public function setDevolucion($devolucion) {
		$this->devolucion=$devolucion;
	}
	
	public function getObservacion() {
		return $this->observacion;
	}
	
	public function setObservacion($observacion) {
		$this->observacion=$observacion;
	}
	
	public function getTipo() {
		return $this->tipo;
	}
	
	public function setTipo($tipo) {
		$this->tipo=$tipo;
	}
	
	public function movimientotipo(){
		$v= array(0,"","","","","");
		$numargs = func_num_args();
		if($numargs)
		{
			for ($i=0; $i<$numargs; $i++) :
				$v[$i]=func_get_arg($i);
			endfor;
		}
		$this->id=$v[0];
		$this->nombre=$v[1];
        $this->filiacion=$v[2];
		$this->devolucion=$v[3];
		$this->observacion=$v[4];
		$this->tipo=$v[5];
    }
	
	public function crear(){
		conexion::getInstance()->consulta("insert into movimiento_tipo (id,nombre,filiacion,devolucion,observacion,tipo)
        values ($this->id,$this->nombre,$this->filiacion,$this->observacion,$this->tipo)");
	}

	public function listar(){
		conexion::getInstance()->consulta("select id,nombre,filiacion,devolucion,observacion,tipo
        from movimiento_tipo");
	}

	public function cargar_combo_movimientotipo(){
		conexion::getInstance()->consulta("select id,nombre from movimiento_tipo where nombre = 'Servicios' or nombre = 'Administrativos' or nombre = 'Gastos de Representacion' or nombre = 'Bancos' or nombre = 'Planilla' or nombre = 'Impuestos'");
		//conexion::getInstance()->consulta("SELECT id,nombre FROM `movimiento_tipo` WHERE filiacion IS NULL");
	}
	
	public function cargar_combo_primera_descripcion()
	{
		$sql="select d2.id,d2.nombre from movimiento_tipo d1 INNER JOIN movimiento_tipo d2 ON d1.id=d2.filiacion where d2.filiacion = $this->filiacion";
		conexion::getInstance()->consulta($sql);
	}
	
	public function cargar_combo_segunda_descripcion()
	{
		$sql="select d2.id,d2.nombre from movimiento_tipo d1 INNER JOIN movimiento_tipo d2 ON d1.id=d2.filiacion where d2.filiacion = $this->filiacion";
		conexion::getInstance()->consulta($sql);
	}
	
	public function buscar(){
		conexion::getInstance()->consulta("select * from movimiento_tipo
        where id = $this->id  ");
		$array=$this->arrayconsulta();
		if(count($array >0)){
			foreach($array as $v):
				$this->id=$v[0];
				$this->nombre=$v[1];
				$this->filiacion=$v[2];
				$this->devolucion=$v[3];
				$this->observacion=$v[4];
				$this->tipo=$v[5];
				
			endforeach;
		}
	}

	public function actualizar_nombre(){
		$sql = "update movimiento_tipo  set nombre=$this->nombre
                where id = $this->id ";
		conexion::getInstance()->consulta($sql);
	}

public function arrayconsulta(){	return conexion::getInstance()->arrayconsulta();	}

	public function numregistros(){		return conexion::getInstance()->numreg();	}

	public function listarnombres(){	return conexion::getInstance()->listarnombres();	}

	public function numerocampos(){		return conexion::getInstance()->numerocampos();		}

	public function cerrarconexion(){	return conexion::getInstance()->cerrar();}
	
}
?>