PHP - Armar combo PHP, mysql, jquery y clases

 
Vista:

Armar combo PHP, mysql, jquery y clases

Publicado por Carina (3 intervenciones) el 12/10/2012 22:30:46
Hola a todos, tengop un codigo que me permite cargar una factura utilizando PHP, mysql y jquery.
Tengo una clase factura que me arma las conexiones y consultas, uan php que me saca el listado de las facturas y cuando selecciono crear una nueva factura o editaruna que ya esta llama otro php que es basicamente un form.
Cada factura tiene asociado un cliente, lo que yo quiero hacer es que cuando de de alta una factura en vez de fijarme cual es el id del cliente cargar un combo y al seleccionarlo saque solo el id.
el codigo del form es el siguiente:

facturaform.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<h2><?php echo $view->label ?></h2>
 
<form name ="fact" id="fact" method="POST" action="factura.php">
    <input type="hidden" name="id" id="id" value="<?php print $view->fact->getId() ?>">
     <div>
        <label>ID Cliente</label>
        <input type="text" name="id_cliente" id="id_cliente" value = "<?php print $view->fact->getIdCliente() ?>">
    </div>
    <div>
        <label>Nombre</label>
        <input type="text" name="nombre" id="nombre" value = "<?php print $view->fact->getNombre() ?>">
    </div>
    <div>
        <label>Apellido</label>
        <input type="text" name="apellido" id="apellido" value = "<?php print $view->fact->getApellido() ?>">
    </div>
	<div>
        <label>Fecha</label>
        <input type="text" name="fecha" id="fecha" value = "<?php print $view->fact->getFecha() ?>">
    </div>
	<div>
        <label>Fecha Pago</label>
        <input type="text" name="fecha_pago" id="fecha_pago" value = "<?php print $view->fact->getFechaPago() ?>">
    </div>
	<div>
        <label>Monto</label>
        <input type="text" name="monto" id="monto" value = "<?php print $view->fact->getMonto() ?>">
    </div>
    <div class="buttonsBar">
        <input id="cancel" type="button" value ="Cancelar" />
        <input id="submit" type="submit" name="submit" value ="Guardar" />
    </div>
</form>



y el de la clase es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?php
class Conexion  // se declara una clase para hacer la conexion con la base de datos
{
	var $con;
	function Conexion()
	{
		// se definen los datos del servidor de base de datos 
 
		// crea la conexion pasandole el servidor , usuario y clave
		$conect= mysql_connect($conection['server'],$conection['user'],$conection['pass']);
 
		if ($conect) // si la conexion fue exitosa , selecciona la base
		{
			mysql_select_db($conection['base']);
			$this->con=$conect;
		}
	}
	function getConexion() // devuelve la conexion
	{
		return $this->con;
	}
	function Close()  // cierra la conexion
	{
		mysql_close($this->con);
	}
 
}
 
class sQuery   // se declara una clase para poder ejecutar las consultas, esta clase llama a la clase anterior
{
 
	var $coneccion;
	var $consulta;
	var $resultados;
	function sQuery()  // constructor, solo crea una conexion usando la clase "Conexion"
	{
		$this->coneccion= new Conexion();
	}
	function executeQuery($cons)  // metodo que ejecuta una consulta y la guarda en el atributo $pconsulta
	{
		$this->consulta= mysql_query($cons,$this->coneccion->getConexion());
		return $this->consulta;
	}
	function getResults()   // retorna la consulta en forma de result.
	{return $this->consulta;}
 
	function Close()		// cierra la conexion
	{$this->coneccion->Close();}
 
	function Clean() // libera la consulta
	{mysql_free_result($this->consulta);}
 
	function getResultados() // debuelve la cantidad de registros encontrados
	{return mysql_affected_rows($this->coneccion->getConexion()) ;}
 
	function getAffect() // devuelve las cantidad de filas afectadas
	{return mysql_affected_rows($this->coneccion->getConexion()) ;}
 
    function fetchAll()
    {
        $rows=array();
		if ($this->consulta)
		{
			while($row=  mysql_fetch_array($this->consulta))
			{
				$rows[]=$row;
			}
		}
        return $rows;
    }
}
 
 
 
class Factura
{
	var $nombre;     //se declaran los atributos de la clase, que son los atributos del cliente
	var $apellido;
	var $fecha;
	var $id_cliente;
	var $monto;
	var $fecha_pago;
	var $id_factura;
 
    public static function getFacturas()
		{
			$obj_factura=new sQuery();
			$obj_factura->executeQuery("select * from vw_factura"); // ejecuta la consulta para traer la factura
 
			return $obj_factura->fetchAll(); // retorna todos los clientes
		}
 
	function Factura($nro=0) // declara el constructor, si trae el numero de factura lo busca , si no, trae todos los clientes
	{
		if ($nro!=0)
		{
			$obj_factura=new sQuery();
			$result=$obj_factura->executeQuery("select * from vw_factura where id_factura = $nro"); // ejecuta la consulta para traer al cliente 
			$row=mysql_fetch_array($result);
			$this->id=$row['id_factura'];
			$this->id_cliente=$row['id_cliente'];
			$this->nombre=$row['nombre'];
			$this->apellido=$row['apellido'];
			$this->fecha=$row['fecha'];
			$this->fecha_pago=$row['fecha_pago'];
			$this->peso=$row['monto'];
		}
	}
 
		// metodos que devuelven valores
	function getID()
	 { return $this->id;}
	function getId_cliente()
	 { return $this->id_cliente;}
	function getNombre()
	 { return $this->nombre;}
	function getApellido()
	 { return $this->apellido;}
	function getFecha()
	 { return $this->fecha;}
 	function getFechaPago()
	 { return $this->fecha_pago;}
	function getMonto()
	 { return $this->monto;}
 
		// metodos que setean los valores
	function setNombre($val)
	 { $this->nombre=$val;}
	function setApellido($val)
	 {  $this->apellido=$val;}
	function setFecha($val)
	 {  $this->fecha=$val;}
	function setId_cliente($val)
	 {  $this->id_cliente=$val;}
	function setFechaPago($val)
	 {  $this->fecha_pago=$val;}
	function setMonto($val)
	 {  $this->monto=$val;}
 
    function save()
    {
        if($this->id)
        {$this->updateFactura();}
        else
        {$this->insertFactura();}
    }
	private function updateFactura()	// actualiza la factura cargado en los atributos
	{
			$obj_factura=new sQuery();
			$query="update factura set id_cliente='$this->id_cliente', monto='$this->monto', fecha='$this->fecha', fecha_pago='$this->fecha_pago' where id = $this->id";
			$obj_factura->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $obj_factura->getAffect(); // retorna todos los registros afectados
 
	}
	private function insertFactura()	// inserta la factura cargado en los atributos
	{
			$obj_factura=new sQuery();
			$query="insert into factura( id_cliente, fecha, fecha_pago, monto)values('$this->id_cliente', '$this->fecha', '$this->fecha_pago', '$this->monto')";
 
			$obj_factura->executeQuery($query); // ejecuta la consulta para traer al cliente 
			return $obj_factura->getAffect(); // retorna todos los registros afectados
 
	}
	function delete()	// elimina la factura
	{
			$obj_factura=new sQuery();
			$query="delete from factura where id=$this->id";
			$obj_factura->executeQuery($query); // ejecuta la consulta para  borrar la factura
			return $obj_factura->getAffect(); // retorna todos los registros afectados
 
	}
 
}
function cleanString($string)
{
    $string=trim($string);
    $string=mysql_escape_string($string);
	$string=htmlspecialchars($string);
 
    return $string;
}


Alguien me podria orientrar como agregar hacer para sacar la parte del id_cliente, nombre y apellido y reemplzarlo por un combo?

Muchas gracias.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder