Foros del Web » Programando para Internet » PHP »

Ayuda_Formulario

Estas en el tema de Ayuda_Formulario en el foro de PHP en Foros del Web. Hola Amigos de Foros del Web,espero que se encuentren bien.Paso a explicarles mi situacion:Estoy apoyando a un amigo a realizar un Sistema para una Notaria,el ...
  #1 (permalink)  
Antiguo 11/09/2010, 23:26
 
Fecha de Ingreso: diciembre-2009
Mensajes: 82
Antigüedad: 14 años, 4 meses
Puntos: 0
Ayuda_Formulario

Hola Amigos de Foros del Web,espero que se encuentren bien.Paso a explicarles mi situacion:Estoy apoyando a un amigo a realizar un Sistema para una Notaria,el cual esta siendo desarrollado en PHP con MySql.Yo estoy encargado de hacer el formulario de Egresos,el cual esta formado por:3 Combo Box(Tipo,Subtipo,Detalle) y dos cajas de texto.Me voy a enfocar en los combo box,ya que de estos viene mi pregunta.

Tengo tres combos:Tipo,Subtipo,Detalle.En el primer combo tendrian que aparecer,segun la tabla anterior,los sgtes datos:Servicios,Administrativos,Gastos de representación,Bancos,Planilla,IMPUESTOS. Ahora,tomando un ejemplo, si yo escogiera la opcion Servicios(1), en el segundo combo tendria que aparecerme los sgtes datos:Servicios Públicos(1),Servicios Profesionales(1),Publicidad(1).Luego,si yo escogo Servicios Publicos(2),en el tercer combo tendrian que aparecerme las sgtes opciones:Luz(2),Agua y Alcantarillado(2),Cable(2),Internet(2),Telefonía Fija(2),Telefonía Móvil(2),Monitoreo de Alarma(2);Si hubiera escogido en el segundo combo Servicios Profesionales(10),en el tercer combo tendria que aparecerme Servicios Jurídicos Cevallos(10),Servicios Jurídicos Otros(10),Servicios Contables(10),Servicios Mantenimiento y reparación(10),Servicios Informáticos(10).Por ultimo,si hubiera escogido Publicidad(16),en el tercer combo tendrian q aparecerme las sgtes opciones:Diarios(16),Revistas(16),Televisión(16),P aginas Amarillas(16),Web(16).

Adjunto la tabla de los datos:
1 Servicios NULL
2 Servicios Públicos 1
3 Luz 2
4 Agua y Alcantarillado 2
5 Cable 2
6 Internet 2
7 Telefonía Fija 2
8 Telefonía Móvil 2
9 Monitoreo de Alarma 2

10 Servicios Profesionales 1 1
11 Servicios Jurídicos Cevallos 10
12 Servicios Jurídicos Otros 10
13 Servicios Contables 10
14 Servicios Mantenimiento y reparación 10
15 Servicios Informáticos 10 1
16 Publicidad 1 1
17 Diarios 16
18 Revistas 16
19 Televisión 16
20 Paginas Amarillas 16
21 Web 16

22 Administrativos NULL
23 Local 22 1
24 Alquiler 23
25 Decoración y ornato del Local 23
26 Material para Mantenimiento o reparación 23
27 Correspondencia y Traslado 22
28 Flete 27
29 Correos 27
30 Courrier 27
31 Mudanza 27
32 Trámites
33 Registros Públicos
34 Otra entidad
35 Gastos de representación NULL 1
36 Movilidad 35
37 Combustible 36
38 Estacionamiento 36
39 Taxi 36
40 Pasajes 36
41 Repuestos 36
42 Viaticos 35
43 Viáticos Fijos 42
44 Viáticos a rendir cuentas 42 1
45 Alimentos 35
46 Comida de Negocios 45
47 Refrigerio 45
48 Comida en Viaje de trabajo 45
49 Comida para el personal 45
50 Alimentos para celebración Empresa 45
51 Alojamiento 35
52 Alojamiento para empleados 51
53 Alojamiento para invitados 51
54 Bancos NULL
55 BCP 54
56 Depósito a Cta cte MN 570-XXXXXXXX 55
57 Depósito a Cta cte ME 570-XXXXXXXX 55
58 BBVA 54
59 Depósito Cta cte MN 011-XXXXXXXX 58
60 Depósito Cta cte ME 011-XXXXXXXX 58
61 Scotiabank 54
62 Depósito CTA Ahorros xxxxxxx 61
63 Planilla NULL 1
64 Sueldo 63
65 Asignación Temporal 64
66 Adelanto sueldo 64
67 Amortización sueldo 64
68 Sueldo completo 64
69 CTS 63
70 Pago CTS en cuenta de trabajador 69
71 Pago CTS a trabajador 69
72 Liquidación 63
73 Vacaciones 72
74 Liquidación parcial 72
75 Liquidación Total 72
76 AFP 63
77 Horizonte 76
78 Integra 76
79 Profuturo 76
80 Prima 76
81 IMPUESTOS NULL
82 SUNAT 81
83 Pago del Mes 82
84 Fraccionamiento 82
85 Multas 82
86 SATT 81
87 INMUEBLE 86
88 VEHICULO 86
89 MULTAS 86

Mi pregunta es la siguiente:¿Como hago para realizar consultas q sirvan para cualquier caso,es decir,que sirvan para cualquier opcion escogida en cada uno de los combos,y me muestren los datos que deberian ser(eso si dependiendo de la opcion escogida)? ¿En ves de poner los numeros 1,2,10,16 tengo que colocar las variables recogidas mediante los selectores? Si es asi,¿Cuales son esas variables en este caso? Por favor,podrian ayudarme??

Para mas informacion les adjuntare el codigo que utilizo:
Formulario:
<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">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>
<tr>
<td class="ewTableHeader">Detalle : </td>
<td colspan="3"><select id="detalle" onchange='mostrar_detalle_servicios()' name="detalle">
<?php foreach($array_movimientotipo2 as $a) :?><option value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
</select>
</td>
</tr>

Funcion mostrar_descripcion():

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.i nnerHTML=data;
//calcularmontos_concepto()
} });
}

Funcion mostrar_detalle_servicios():

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.inne rHTML=data;
//calcularmontos_concepto()
} });
}

mostrar_descripcion.php:
<?php session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo(); //creamos el objeto movimientotipo

$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>

mostrar_detalle_servicios.php:
<?php session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo(); //creamos el objeto movimientotipo

$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>

Y por ultimo,la clase donde realizo las consultas a la Base de Datos:
<?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(
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->d1.filiacion");

}

public function cargar_combo_segunda_descripcion()
{
conexion::getInstance()->consulta("select id,nombre from movimiento_tipo");
}

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);
}

}
?>
  #2 (permalink)  
Antiguo 12/09/2010, 02:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Ayuda_Formulario

Hola
bueno, te recomiendo publiques el código php entre highlight php
por otro lado, para lo que mencionas te dejo esto
espero te sirva
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 14/09/2010, 16:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 82
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Ayuda_Formulario

hola mortiprogramador,no se como poner el codigo en highlight pero te lo coloco entre etiquetas CODE ok.

Formulario:
Código:
<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">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>
<tr>
<td class="ewTableHeader">Detalle : </td>
<td colspan="3"><select id="detalle" onchange='mostrar_detalle_servicios()' name="detalle">
<?php foreach($array_movimientotipo2 as $a) :?><option value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach;?>
</select>
</td>
</tr>
Funcion mostrar_descripcion():

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.i nnerHTML=data;
//calcularmontos_concepto()
} });
}
Funcion mostrar_detalle_servicios():
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.inne rHTML=data;
//calcularmontos_concepto()
} });
}
mostrar_descripcion.php:
Código:
<?php session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo(); //creamos el objeto movimientotipo

$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>
mostrar_detalle_servicios.php:
Código:
<?php session_start();
include "../../movimientotipo.php"; //clase movimientotipo
$o_movimientotipo = new movimientotipo(); //creamos el objeto movimientotipo

$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>
Y por ultimo,la clase donde realizo las consultas a la Base de Datos:
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(
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->d1.filiacion");

}

public function cargar_combo_segunda_descripcion()
{
conexion::getInstance()->consulta("select id,nombre from movimiento_tipo");
}

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);
}

}
?>
He estado revisando las paginas q me diste pero no encuentro algo parecido a mi situacion,espero que me puedas ayudar con esto ok.
  #4 (permalink)  
Antiguo 14/09/2010, 21:54
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Ayuda_Formulario

Hola, bueno, no esta tan lejos del code... para el caso php esta esto a la derecha de code, y para php numerado y los demas lenguajes, pues esta el combo que tiene Highlight como opción por defecto.

si lo quieres escribir, sería [ HIGHLIGHT=PHP]//codigo php aquí dentro [/HIGHLIGHT] pero con PHP encerrado entre comillas para que efectue el coloreo

en cuanto a lo tuyo, tienes el script de creación/poblado de tablas??
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: Ninguno
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 15:37.