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

No problem silvanha,he estado intentando hacer usando esa tabla y agregando algo en el codigo que te puse la vez pasada, pero ahora,me sale el sgte error
Código:
Unknown column 'undefined' in 'where clause'
cuando selecciono algo en el primer combo. Es decir,cuando entro a la pagina me salen los tres combos,de los cuales,el primero me sale con los datos q quiero,los otros dos me salen vacios,cuando selecciono una opcion en el primer combo,el segundo combo se me borra y me arroja el error que te mencioné abuuu.

A cotinuacion te pongo el codigo en el cual he ido agregando algunas cositas ok.

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="tiposervicio" 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="movimiento"  name="movimiento">                
                    <?php foreach($array_movimientotipo1 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()
{
	campo1=$("#campo1").attr("value");
	$.ajax({ type: "GET", url: "funciones/operacion/mostrar_descripcion.php?campo1="+campo1,
	data: null,	  success: function(data){ 
	document.getElementById("movimiento").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['campo1']);
}
else {
$o_movimientotipo->setFiliacion($_SESSION['ssrol']); }

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

<select id="movimiento"  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()
{
	
	campo2=$("#campo2").attr("value");
	$.ajax({ type: "GET", url: "funciones/operacion/mostrar_detalle_servicios.php?campo2="+campo2,
	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['campo2']);
}
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.En este caso,la consulta que me arroja el error que te mencione antes se encuentra en la funcion cargar_combo_primera_descripcion():
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()
	{
		conexion::getInstance()->consulta("select d2.id,d2.nombre from movimiento_tipo d1 INNER JOIN movimiento_tipo d2 ON d1.id=d2.filiacion where d2.filiacion = $this->filiacion");//esta es mi consulta q te digo
		
	}

	public function cargar_combo_segunda_descripcion()
	{
		conexion::getInstance()->consulta("select id,nombre from movimiento_tipo");//consulta de prueba nada mas
	}
	
	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();}
	
}
?>
¿Porque me saldra ese error?? Espero que me sigas ayudando como lo has estado haciendo hasta el momento.Gracias