Foros del Web » Programando para Internet » PHP »

Ayuda_Formulario_PHP

Estas en el tema de Ayuda_Formulario_PHP en el foro de PHP en Foros del Web. Hola gente de Foros del Web,espero que se encuentren bien,paso a explicarles mi problema:Estoy apoyando a un amigo con un sistema que se encuentra desarrollado ...
  #1 (permalink)  
Antiguo 07/09/2010, 18:15
 
Fecha de Ingreso: diciembre-2009
Mensajes: 82
Antigüedad: 14 años, 11 meses
Puntos: 0
Ayuda_Formulario_PHP

Hola gente de Foros del Web,espero que se encuentren bien,paso a explicarles mi problema:Estoy apoyando a un amigo con un sistema que se encuentra desarrollado en php con mysql.Me ha dejado crear un formulario que tenga las siguientes caracteristicas:Debe tener los siguientes campos con su respectiva lista desplegable:Tipo,Subtipo,Detalle.

En la lista desplegable Tipo,tendria que aparecer los siguientes datos:Servicios, Administrativos,Gastos de representación,Bancos,Planilla,IMPUESTOS.Ahora,por ejemplo, si escogo de la lista desplegable Tipo,quiero que en la segunda lista desplegable(Subtipo) me aparezca lo siguiente:Servicios Publicos,Servicios Profesionales,Publicidad.
Si escogo Servicios Publicos,en la tercera lista desplegable(Detalle) tendria que aparecerme lo sgte:Luz,Agua y Alcantarillado,Cable,Internet,Telefonía Fija,Telefonía Móvil, Monitoreo de Alarma y asi sucesivamente con los otros datos.
Para poder hacer lo anterior tengo que usar el metodo onchange.Para esto, mi compañero me ha dicho que me fije en unos archivos que son parecidos a lo que quiero hacer...Pero,hay unas partes
que no entiendo.El codigo de cada uno de los archivos lo muestro a continuacion:
Archivo operacionadd.php:
<tr>
<td class="ewTableHeader">Categoria : </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>

El metodo mostrar_conceptos() esta en una parte del codigo JavaScript que es esta:
function mostrar_conceptos(){
area=$("#area").attr("value");
$.ajax({ type: "GET", url: "funciones/operacion/mostrar_conceptos.php?area="+area,
data: null, success: function(data){
//$("#concepto").html(data);
document.getElementById("concepto").parentNode.inn erHTML=data;
calcularmontos_concepto()
} });

}

En esa funcion,hace una llamada al archivo mostrar_conceptos.php,el cual es el sgte:

<?php session_start();
include "../../concepto.php"; //clase concepto
$o_concepto = new concepto(); //creamos el objeto concepto

if(conexion::is_administrador()==1){
$o_concepto->setId_rol($_GET['area']);
}
else {
$o_concepto->setId_rol($_SESSION['ssrol']); }

$o_concepto->listar_por_categoria();//se encuentra en un archivo llamado concepto.php
$array_concepto = $o_concepto->arrayconsulta(); ?>
<select id="concepto" onchange='calcularmontos_concepto()' name="concepto">
<?php if(count($array_concepto)>0) { ?>
<?php foreach($array_concepto as $a) :?><option value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach; ?>

<?php } else { ?> <option value="0">No Existen Productos</option> <?php } ?>
</select>

Ahora,ahi llama a otro metodo llamado calcularmontos_concepto(),el cual no entiendo mucho lo q hace,y no se porque lo llama.A continuacion
el codigo de ese archivo:

function calcularmontos_concepto() {
id=document.getElementById("concepto").value;
if( document.getElementById('concepto').value == 0)
{ document.getElementById('cantidad').disabled = true ; }
else
{ document.getElementById('cantidad').disabled = false ; }
cantidad=document.getElementById("cantidad").value ;


peticion_http = crearajax();
// Preparar la funcion de respuesta
peticion_http.onreadystatechange = muestraContenido;
// Realizar peticion HTTP
peticion_http.open('GET', 'calcularmonto.php?idconcepto='+id, true);
peticion_http.send(null);
function muestraContenido() {
if(peticion_http.readyState == 4) {
if(peticion_http.status == 200) {
//alert(peticion_http.responseText);
var msj = peticion_http.responseText.split('__');
document.getElementById("monto").value=msj[0];
document.getElementById("preferencial").innerHTML= "Minimo : "+msj[1];
if(msj[2]==3)
{
document.getElementById("monto").readOnly=true;
}
else
{
document.getElementById("monto").readOnly=false;
}
}
}
}
}

A continuacion listar_por_categoria:Este se encuentra en una clase llamada concepto.php
public function listar_por_categoria(){
$sql = "select co.id as id, CONCAT(pr.nombre,'-',me.nombre) as nombre from concepto co inner join
producto pr on co.id_producto = pr.id
inner join medida me on co.id_medida = me.id

where id_producto_categoria = $this->id_rol order by pr.nombre";
conexion::getInstance()->consulta($sql);
}
Todo el codigo anterior me muestra algo parecido a lo que yo quiero hacer,pero,no lo entiendo muy bien. Quisiera pedirles que si no llegan a entender el codigo que he colocado,podrian darme alguna forma de comunicarme con ustedes,ya sea por correo,msn,facebook,etc.De verdad necesito ayuda por favor.
  #2 (permalink)  
Antiguo 07/09/2010, 18:27
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: Ayuda_Formulario_PHP

primero se más especifico, que es lo que no entiendes o necesitas entender.. digo explicarte todo el código es demasiado, y por lo que veo ya tienes idea... así que mejor especifica tu duda :P

segundo.. con respecto a esto..
Cita:
Iniciado por miguelangel23 Ver Mensaje
Todo el codigo anterior me muestra algo parecido a lo que yo quiero hacer,pero,no lo entiendo muy bien. Quisiera pedirles que si no llegan a entender el codigo que he colocado,podrian darme alguna forma de comunicarme con ustedes,ya sea por correo,msn,facebook,etc.De verdad necesito ayuda por favor.
bueh! en las normas del foro especifica que no se puede pedir ayuda y después pedir que te la den en privado, porque la intención es que esto, algún día a alguien más le pueda servir, además de que sirve tener a uno o dos, si bien aquí tienes montones que podemos ayudar en conjunto ;)

Y por último.. el código esta bastante entendible, te repito, explica mejor tu duda, y te ayudamos ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 07/09/2010, 18:43
 
Fecha de Ingreso: diciembre-2009
Mensajes: 82
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ayuda_Formulario_PHP

Gracias silvanha por tus palabras,estoy tan desesperado q se me habia olvidado q en este foro no se puede pedir ayuda en privado :).

Mis principales dudas son las siguientes:las lineas siguientes no entiendo para que sirven:
area=$("#area").attr("value");
data: null, success: function(data){
document.getElementById("concepto").parentNode.inn erHTML=data;

estas estan en function mostrar_conceptos()

Ahora,con respecto al archivo mostrar_conceptos.php,las lineas que no entiendo son las sgtes:
if(conexion::is_administrador()==1){
$o_concepto->setId_rol($_GET['area']);
}
else {
$o_concepto->setId_rol($_SESSION['ssrol']); }


<select id="concepto" onchange='calcularmontos_concepto()' name="concepto">
<?php if(count($array_concepto)>0) { ?>
<?php foreach($array_concepto as $a) :?><option value="<?php echo $a['id']?>"><?php echo $a['nombre'] ?></option><?php endforeach; ?>

y por ultimo, la funcion calcularmontos_concepto() no entiendo que cosa hace o para que sirve,mas la parte que comienza desde:

peticion_http = crearajax();
// Preparar la funcion de respuesta
peticion_http.onreadystatechange = muestraContenido;
// Realizar peticion HTTP
peticion_http.open('GET', 'calcularmonto.php?idconcepto='+id, true);
peticion_http.send(null);
function muestraContenido() {
if(peticion_http.readyState == 4) {
if(peticion_http.status == 200) {
//alert(peticion_http.responseText);
var msj = peticion_http.responseText.split('__');
document.getElementById("monto").value=msj[0];
document.getElementById("preferencial").innerHTML= "Minimo : "+msj[1];
if(msj[2]==3)
{
document.getElementById("monto").readOnly=true;
}
else
{
document.getElementById("monto").readOnly=false;
}
}
}
}
}

Y sino es mucha molestia,podrias poner algun link o url de alguna pagina que hable sobre el metodo onChange,su uso,ejemplos,para poder guiarme ok.

Te lo agradeceria bastante.
  #4 (permalink)  
Antiguo 07/09/2010, 19:12
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 8 meses
Puntos: 65
Respuesta: Ayuda_Formulario_PHP

jejejeje pues san google sabe todo =)

y de tus dudas, veamos..si te das cuenta todo el script esta hecho en PHP y AJAX, así que te recomiendo que busques más o menos el funcionamiento de este último, por ejemplo.. attr() llama el valor del atributo enviado..

en las siguientes esta validando si quien esta conectado sea el administrador creo, ahí necesitas verificar "$o_concepto" a que clase esta instanciando...

y me parece que la funcion esa "calcularmontos_concepto() ", habilita o deshabilita un campo de texto.. en función de lo que selecciona en el combo..

sería bueno también que vieras su funcionamiento, ya con eso te das mas idea de que esta haciendo ^^ no le tengas miedo a google, es increíble, pero es de gran ayuda ;) lo que no sepas, y tenga modo de función, investigale .. :)

si tienes más dudas, por ahí te ayduamos..

saluditos ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)

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 21:25.