Foros del Web » Programando para Internet » PHP »

Problemas con POST

Estas en el tema de Problemas con POST en el foro de PHP en Foros del Web. Saludos de nuevo por aqui Agradeceria a quie me ayudara en esto Tengo un formulario en el muestro dos combos y tengo unn boton que ...
  #1 (permalink)  
Antiguo 21/09/2010, 08:35
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta Problemas con POST

Saludos de nuevo por aqui
Agradeceria a quie me ayudara en esto

Tengo un formulario en el muestro dos combos y tengo unn boton que al presionarlo abre una ventana emergente para buscar un concepto X, esa ventana la abre y me muestra los conceptos y todo, el problema esta en que cuando lo selecciono no devuelve nada a la pagina que la llamo.


Le muestro primeramente el codigo de la pagina que llama:::

<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td width="19%" class="etiqueta">Tipo de N&oacute;nima</td>
<td width="81%">
<form name="frm_tiponomina" id="frm_tiponomina" method="post" a action="<?php echo($_SERVER['PHP_SELF']) ?>?VER=<?php echo md5('Empleados_Por_Concepto')?>" >
<select name="TIPO_NOMINA" id="TIPO_NOMINA" style="width:110px" onchange="dispararform(1)">
<option value="0">Seleccione</option>
<option value="1"<?php echo($_SESSION['TIPO_NOMINA'] == 1)?"Selected":''?>>Administrativo</option>
<option value="2"<?php echo($_SESSION['TIPO_NOMINA'] == 2)?"Selected":''?>>Docente</option>
<option value="3"<?php echo($_SESSION['TIPO_NOMINA'] == 3)?"Selected":''?>>Obrero</option>
</select>
<input type="hidden" name="CEDULA" value="<?php echo $_POST['CEDULA']?>"/>
</form>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td class="etiqueta">N&uacute;mero de Control
<td>
<form name="frm_nrocontrol" id="frm_nrocontrol" method="post" action="<?php echo($_SERVER['PHP_SELF']) ?>?VER=<?php echo md5('Empleados_Por_Concepto')?>" >
<select name="NUMERO_CONTROL" id="NUMERO_CONTROL" style="width:130px" onchange="dispararform(2)">
<?php
echo lst_numeros_control_movimientos($_SESSION['NUMERO_CONTROL'], $_SESSION['TIPO_NOMINA']);
?>
</select>
<input type="hidden" name="TIPO_NOMINA" value="<? echo $_SESSION['TIPO_NOMINA']?> "/>
</form>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td class="etiqueta">Buscar Concepto
<td>
<form method="post" name="buscar" id="buscar" action="<?php echo $_SERVER['PHP_SELF']?>?VER=<?php echo md5('Empleados_Por_Concepto')?>">
<input type="hidden" name="CONCEPTO" id="cConcepto" value="<? echo(1) ?>" onChange="javascript:this.value=this.value.toUpper Case();">
<input type="hidden" name="ValorFijoBuscar" id="cTipoConcepto" value="<? echo $_POST['CONCEPTO'] ?>" onChange="javascript:this.value=this.value.toUpper Case();">

<input type="hidden" name="NUMERO_CONTROL" value="<?php echo $_SESSION['NUMERO_CONTROL']?>" />
<input type="hidden" name="PS" value="<?php echo $_SEr?>"
<img id="bscConcepto" src="http://<? echo(RAIZ) ?>/imagenes/lupa2.gif" onClick="javascript: popSelConcepto('CONCEPTO',1);" onMouseOver="javascript:punteroSobre('bscConcepto' )" onMouseOut="javascript:punteroFuera('bscConcepto') " alt="buscar">
</form>
</td>
</tr>
<tr>
<td colspan="2">
<div align="right">
<input type="button" name="IMPRIMIR" class="botonera" value="Imprimir Listado" id="IMPRIMIR"<? echo (count($matriz)==0)?'disabled':'';?> onClick="javascript: wx('http://<? echo(RAIZ) ?>/reportes/rep.listado.ahorro.habitacional.php?TIPO_NOMINA=<? echo $tipo_nomina?>&NUMERO_CONTROL=<?php echo $numero_control;?>&EMPLEADO=<?php echo $cedula?>')" align="middle">
</div>
</td>
</tr>
</table>


y esta es la pagina que tiene el buscador ::::


<?

function lst_concepto($v_filtro) {
global $cnxODBC;

$v_cons = $v_filtro;

$cadSQL = sprintf("exec wCons_Concepto @var = '%s'",
$v_cons
);
$consulta = odbc_exec($cnxODBC, $cadSQL);

$cad_res_a = '<option>Conceptos</option>';
if (is_resource($consulta)) {
while (odbc_fetch_row($consulta)) {
$cad_descripcion = trim(odbc_result($consulta, "descripcion"));
$cad_abreviatura = trim(odbc_result($consulta, "abreviatura"));
$cad_id = trim(odbc_result($consulta, "idconcepto"));
$cad_tipo = trim(odbc_result($consulta, "tipo_concepto"));

$retorno = $cad_id.'-'.$cad_tipo;
$cad_res_a .= '<option value="'.$retorno.'">'.$cad_abreviatura.', '.$cad_descripcion.'</option>';
$cad_res_a .= "\n";
}
odbc_free_result($consulta);
} else {
die(msgerror_odbc($cnxODBC));
}
return $cad_res_a;
}
/*--------------------------------------------------------------*/
$cnxODBC = establecerconexionODBC();
/*-----------------------------------------------------------*/
$v_filtro = $_GET['F'];
/*
* Se utiliza para construir la dirección de recarga con los mismos parámetros pasas
*/
$i = 0;
foreach($_GET as $CLAVE => $VALOR)
$cadParametros .= (($i++>0) ? '&' : '') . "$CLAVE=$VALOR";
/*-----------------------------------------------------------*/
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Seleccione el concepto</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<script type="text/javascript">
var ie4 = document.all;
var ns6 = document.getElementById && !document.all;
/*----------------------------------------------------DIPARAR FORM--------------------------------------------*/
function dispForm() {
if (ie4) {
oo = document.all('frm');
if (oo) {
oo.submit();
}
}
if (ns6) {
oo = document.getElementById('frm');
if (oo) {
oo.submit();
}
}
}
/*--------------------------------------------------SELECCIONE EL CONCEPTO-------------------------------------*/
function SeleccionarConcepto() {
var want = window.opener;
var lsalir = true;

if (want) {
if (ie4) {
ow3 = want.document.all('cConcepto');
ow4 = want.document.all('cTipoConcepto');
oo = document.all('CONCEPTO');
//alert('oo'+oo+'ow3'+ow3+'want'+want);
} else {
ow3 = want.document.getElementById('cConcepto');
ow4 = want.document.getElementById('cTipoConcepto');
//oo1 = document.getElementById('VALORFIJO');
oo = document.getElementById('CONCEPTO');
}
if (oo && ow3 && ow4 ) {
if (oo.options.length>0) {
if (oo.options.selectedIndex > 0) {
ow3.value = oo.options[oo.options.selectedIndex].value;
ow4.value = oo.options[oo.options.selectedIndex].value;
} else {
alert('Debe seleccionar al menos una opción');
lsalir = false;
}
}
}
//alert("datos"+'ow3'+ow3+' '+'want'+want+'oo'+oo);
}
if (lsalir) {want.document.forms[0].submit();window.close()};
}
</script>
<body>
<form id="frm" action="<? echo($_SERVER['PHP_SELF'] .'?'.$cadParametros) ?>" method="get" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="OP" value="<? echo($_GET['OP']) ?>">
<input type="hidden" name="SEL" value="<? echo($_GET['SEL']) ?>">
<div style="background-color:#ffffff"><img src="http://<? echo(RAIZ) ?>/recursos/imagenes/separador01.gif" height="1" width="1"></div>
<div class="form_celda_etiqueta">
<span><strong>Indique el Filtro</strong>:</span>
<input type="text" name="F" value="<? echo($v_filtro) ?>"onChange="javascript:dispForm()"> </div>

<div style="background-color:#ffffff"><img src="http://<? echo(RAIZ) ?>/recursos/imagenes/separador01.gif" height="1" width="1"></div>
<div class="form_celda_etiqueta">Alumnos</div>
<div class="form_celda_etiqueta" align="center">
<select name="CONCEPTO" id="CONCEPTO" style="font-size:xx-small; width:400px" size="20">
<?
if (strlen(trim($v_filtro))>0) {
echo(lst_concepto($v_filtro));
}
else {
echo "<option>Sin registro...</option>";
}
?>
</select>
</div>
<div style="background-color:#ffffff"><img src="http://<? echo(RAIZ) ?>/recursos/imagenes/separador01.gif" height="1" width="1"></div>
<div class="form_celda_campo" align="center">
<input type="button" value="Seleccionar" onClick="javascript: SeleccionarConcepto();">
<span>&nbsp;&nbsp;</span>
<input type="button" value="Cerrar" onClick="javascript: window.close();">
</div>
</form>
</body>
</html>

No se que estoy haciendo mal que no devuelve el valor se supone que lo deberia devolver en POST
Gracias de Antemano
  #2 (permalink)  
Antiguo 21/09/2010, 08:52
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 13 años, 9 meses
Puntos: 7
Respuesta: Problemas con POST

dos recomendaciones:

1.-Cuando postees un codigo tan largo utiliza las herramientas de highlight para poder facilitar la lectura de tu codigo.

2.-En mi particular opinión creo que no deberias usar los short tag (<?, ?>), porque a veces causa conflicto y/o no son reconocidos como debería trata de usar siempre los tags completos (<?php, ?>)
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #3 (permalink)  
Antiguo 21/09/2010, 08:56
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Problemas con POST

Me parece que tu problema no es PHP sino Javascript, como has dicho que abres una ventana emergente, como lo haces? En concreto creo que te podría ayudar un poco más si pones la función dispararform() aquí porque me parece que hay está el fallo (bueno, y en las otras que mandan, pero el fallo es el mismo)

De todas maneras recuerda que Firefox + Firebug es una herramienta muy poderosa.
__________________
I (L) Google
  #4 (permalink)  
Antiguo 21/09/2010, 09:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Problemas con POST

Cita:
Iniciado por perryjr Ver Mensaje
Me parece que tu problema no es PHP sino Javascript, como has dicho que abres una ventana emergente, como lo haces? En concreto creo que te podría ayudar un poco más si pones la función dispararform() aquí porque me parece que hay está el fallo (bueno, y en las otras que mandan, pero el fallo es el mismo)

De todas maneras recuerda que Firefox + Firebug es una herramienta muy poderosa.
  #5 (permalink)  
Antiguo 21/09/2010, 09:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 121
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Problemas con POST

Cita:
Iniciado por perryjr Ver Mensaje
Me parece que tu problema no es PHP sino Javascript, como has dicho que abres una ventana emergente, como lo haces? En concreto creo que te podría ayudar un poco más si pones la función dispararform() aquí porque me parece que hay está el fallo (bueno, y en las otras que mandan, pero el fallo es el mismo)

De todas maneras recuerda que Firefox + Firebug es una herramienta muy poderosa.
Gracias lo tomare en cuenta para la proxima vez...
Tecoloco el codigo del dispararform. Pero que tendria que ver esa funcion
Código Javascript:
Ver original
  1. var oObj=0;
  2. function dispararform(cual) {      
  3.     if (cual == 1) {
  4.     if (TipoNavegador() == 1) { oObj = document.all("frm_tiponomina"); }
  5.     if (TipoNavegador() == 2) { oObj = document.getElementById("frm_tiponomina"); }
  6.     }
  7.     if (cual == 2) {
  8.     if (TipoNavegador() == 1) { oObj = document.all("frm_nrocontrol"); }
  9.     if (TipoNavegador() == 2) { oObj = document.getElementById("frm_nrocontrol"); }
  10.     }
  11.     if (oObj) oObj.submit();       
  12. }
  #6 (permalink)  
Antiguo 22/09/2010, 13:22
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Problemas con POST

Fallo, no era nada de eso. Pero otra preguntilla que quería hacerte es que en los formularios del primer código lo envía todo con POST, en el segundo código hay esto
Código PHP:
Ver original
  1. <form id="frm" action="<? echo($_SERVER['PHP_SELF'] .'?'.$cadParametros) ?>" method="get" enctype="application/x-www-form-urlencoded">
que es una petición GET y para terminar recoges los datos con
Código PHP:
Ver original
  1. foreach($_GET as $CLAVE => $VALOR)

No se si se me escapa algo pero me parece que ese es tu problema. Los formularios de la página que llama envian los datos en $_POST, si tu recibes los datos en $_GET.

Me parece que deberías cambiar esta línea de antes del foreach por algo así:
Código PHP:
Ver original
  1. foreach($_POST as $CLAVE => $VALOR)

Y que esta línea en el archivo del buscador:
Código PHP:
Ver original
  1. <form id="frm" action="<? echo($_SERVER['PHP_SELF'] .'?'.$cadParametros) ?>" method="get" enctype="application/x-www-form-urlencoded">
  2. // va a cambiar a esta otra línea:
  3. <form id="frm" action="<? echo($_SERVER['PHP_SELF'] .'?'.$cadParametros) ?>" method="post">

Pruébalo y me cuentas si ya va bien o si sigues teniendo los mismos problemas.
__________________
I (L) Google

Etiquetas: post
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 18:38.