Foros del Web » Programando para Internet » PHP »

falla con el metodo _get y _post

Estas en el tema de falla con el metodo _get y _post en el foro de PHP en Foros del Web. Hola a todos . Tengo este código en php: <form name="habilitado" METHOD="get" action="material_en_pedido.php"> <table align="center" bgcolor=#B0C4DE> <tr> <td>ODC Recibida:</td> <td><input type="checkbox" name="recibido"> </td> </tr> </table> ...
  #1 (permalink)  
Antiguo 22/02/2010, 17:02
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
falla con el metodo _get y _post

Hola a todos .

Tengo este código en php:

<form name="habilitado" METHOD="get" action="material_en_pedido.php">
<table align="center" bgcolor=#B0C4DE>
<tr>
<td>ODC Recibida:</td>
<td><input type="checkbox" name="recibido">
</td>
</tr>
</table>
<br><br>
<p align=center>
<input type="submit" name="insertar" value="Guardar" class="boton" >
</p>
</form>


<?php


if(isset($_GET["recibido"])){

$query = "UPDATE odc
SET recibido = 'SI'
WHERE noodc = $buscaodc";
$result = $conn->Execute($query) or die($conn->ErrorMsg () . "<br />" . $query);
echo "<script type=\"text/javascript\">alert(\"ODC Recibida\");</script>";
}


Se supone que si el checkbox es habilitado se tiene que realizar el "UPDATE"; realmente lo hacía bien pero de buenas a primeras ejecuté el programa y nada... que ya no funcionaba, es como si por medio del GET (o el POST, porque ya lo probé también) no recibieran nada, incluso si quito el if, si realiza el UPDATE.

Espero haberme dado a entender, de antemano muuuuuchas gracias por sus opiniones y respuestas.
  #2 (permalink)  
Antiguo 22/02/2010, 17:17
 
Fecha de Ingreso: septiembre-2007
Mensajes: 59
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: falla con el metodo _get y _post

Hola thixko, probé el código y funciona bien, reemplace el update por un mensaje en pantalla.

El problema está en otro lado, ese es todo el código de tu archivo?
__________________
Clasificados gratis
  #3 (permalink)  
Antiguo 22/02/2010, 17:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: falla con el metodo _get y _post

Hazle un var_dump a $_GET y usa la funcion mysql_error para ver si tiene algún error el código.
Código PHP:
Ver original
  1. mysql_query("aqui va tu consulta") or die(mysql_error());
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 23/02/2010, 12:10
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Sonrisa Respuesta: falla con el metodo _get y _post

Hola chicos, gracias por sus respuestas :)

Poos, no es todo el código, aquí está el código completo:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../includes/style.css" type="text/css">


<?php
include("../../config.inc.php");
include_once(
"../../includes/users.inc.php");
include_once(
"../../includes/cookies.inc.php");
include_once(
"../../includes/adodb4.5/adodb.inc.php");
include_once(
"../../includes/adodb4.5/adodb-pager.inc.php");
include_once(
"../../includes/adodb4.5/tohtml.inc.php");
protect();


$conn = &ADONewConnection('odbc');
$connString "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=$_vfp_path/compra1/;Exclusive=No;Collate=Machine;";
$conn->Connect("$connString");
$conn->SetFetchMode(ADODB_FETCH_ASSOC);



$smarty->display("../header.tpl");



?>

<html>
<body>

<br><br><br><br><br><br>
<p ALIGN="center"><u><b>Material recibido sin ACM</b></u></p>
<br><br><br><br>

<form name="odcrecib" METHOD="post" action="material_en_pedido.php">
<table align="center" bgcolor=#B0C4DE>
<tr>
<td>Ingresa ODC:</td>
<td><input type="text" value=" " name="buscaodc" onKeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"  size="5">
</td>
</tr>
</table>
<br><br>
<p align=center>
<input  type="submit" name="aceptar" value="Buscar" class="boton" >
</p>
</form>

<?php
if( strtoupper$_SERVER['REQUEST_METHOD'] ) == "POST" ){

$buscaodc=$_POST['buscaodc'];
$p=strlen(trim($buscaodc));


    if(
$p 0){
            
$query "SELECT pedido, descripcio, noodc, fecha_entr FROM odc WHERE noodc = $buscaodc";    
             
$result $conn->Execute($query) or die($conn->ErrorMsg() . "<br />" $query);
            
$pedido $result->fields["pedido"];
            
            
$descripcion $result->fields["descripcio"];
            
            
$odc=$result->fields["noodc"];
            
            
            
$fecha=$result->fields["fecha_entr"];
            
                
          if ((
$buscaodc!=$odc)||($buscaodc==0)) {
               echo 
"<script type=\"text/javascript\">alert(\"No existe ODC\");</script>";      
             }
    }    
    if(
$p==0)    
        echo 
"<script type=\"text/javascript\">alert(\"Introduzca ODC\");</script>";        


        
       
$pager = new pager(array(                             
                             
"query" => $query,                                                  
                             
"doNotUseCache" => true,
                             
"filter" => $filter,
                             
"extendedFilter" => $extendedFilter,
                             
"currentPage" => $_GET["currentPage"],
                             
"pageSize" => 1000,
                             
"sort" => $sort,
                             
"defaultTitleHeader" => "nowrap width=1",
                             
"titleHeaders" => array(
                                                   
"pedido" => "align=center",
                                                   
"descripcio" => "align=left",
                                                   
"noodc" => "align=left",
                                                   
"fecha_entr" => "align=left",                                                  
                                                   ),
                             
"cellProperties" => array(
                                                   
"pedido" => "align=center",
                                                   
"descripcio" => "align=left",
                                                   
"noodc" => "align=center",
                                                   
"fecha_entr" => "align=center",                                                                                                       
                                                   ),
                             
"fieldNames" => array(                                                                                                    
                                                   
"pedido" => "Pedido",
                                                   
"descripcio" => "Descripcion",                                   "noodc" => "ODC",                            "fecha_entr" => "Fecha_Entrega",                                                         
                                                   ),
                             
"rowProperties" => array("bgcolor=white onmouseover=this.style.backgroundColor='#B0C4DE' onmouseout=this.style.backgroundColor=''",
                                                      
"bgcolor=#EFEFEF onmouseover=this.style.backgroundColor='#B0C4DE' onmouseout=this.style.backgroundColor=''"),
                             
                             
"validateRS"   => true,
                             
"extraData" => array("clasificacion" => $clasificacion),
                             ));          
        if (
$pager->connectionFailed) {
            
$smarty->assign("errorMessage","No se puede tener acceso a la base de datos. Es posible que esté en uso en este momento.".$conn->_errorMsg);
            
$smarty->assign("errorLevel",$conn->_errorMsg);
        }
        
$smarty->assign("griddata",$pager->GRIDDATA);
        
$smarty->assign("navmenus",$pager->NAVMENUS);
        
$smarty->assign("next",$pager->nextPageLink);
        
$smarty->assign("prev",$pager->prevPageLink); 
                    
          

echo 
"
<table align=\"center\">
<tr>
        <td> </td>
    </tr>
    <tr>       
        <td border=\"2\">"
.$pager->GRIDDATA; echo"</td>";
  echo 
" </tr>
    <tr>
        <td></td>        
    </tr>
</table> "
;
?>
<form name="habilitado" METHOD="get" action="material_en_pedido.php">
<table align="center" bgcolor=#B0C4DE>
<tr>
<td>ODC Recibida:</td>
<td><input type="checkbox" name="recibido">
</td>
</tr>
</table>
<br><br>
<p align=center>
<input  type="submit" name="insertar" value="Guardar" class="boton" >
</p>
</form>


<?php
          
if(isset($_GET["recibido"])){   
    
              
$query "UPDATE odc
                        SET recibido = 'SI'
                        WHERE noodc = $buscaodc"
;
                
$result $conn->Execute($query) or die($conn->ErrorMsg() . "<br />" $query);
              echo 
"<script type=\"text/javascript\">alert(\"ODC Recibida\");</script>";      
           }
}
$smarty->display("../footer.tpl");

?>
</body>
</html>
Abimaelrc, como la base de datos se encuentra en foxpro, no se si te refieras a esta línea que se supone verifica que exista algún error:

Código PHP:
$result $conn->Execute($query) or die($conn->ErrorMsg() . "<br />" $query); 
y en cuanto a var_dump, la utilicé y nada, entiendo que es para limpiar basura que contenga la variable, lo que no se es si la utilicé correctamente: var_dump´($_GET); también al poner esa instrucción me despliega en la página: array(0) { }.

Muchas gracias por su apoyo y ayuda
  #5 (permalink)  
Antiguo 23/02/2010, 13:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: falla con el metodo _get y _post

Veo algunos errores:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../includes/style.css" type="text/css"> 
Si estas definiendo un tipo de documento (DTD) debes respetar los estandares para codificacion de tu HTML, no puedes enviar el bloque superior y despues una etiqueta <html>

Tambien, en tu formulario tienes METHOD="post", todas las etiquetas, atributos y valores deben estar escritos en minusculas y, finalmente, si el metodo definido es post, busca las variables en $_POST o cambia el metodo a get y entonces podras procesar el contenido de $_GET.

var_dump() es una funcion para mostrar en pantalla el contenido de una (o mas) expresion, variable, constante, matriz, etc., por ejemplo, prueba:

Código PHP:
Ver original
  1. echo '<pre>';
  2. var_dump($_GET, $_POST);
  3. echo '</pre>';
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 24/02/2010, 11:44
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: falla con el metodo _get y _post

Gracias Triby:

Cambié todas las mayúsculas por minúsculas, en el programa existen dos formularios uno con método POST:

Código PHP:
<form name="odcrecib" method="post" action="material_en_pedido.php"> 
<table align="center" bgcolor=#B0C4DE> 
<tr> 
<td>Ingresa ODC:</td> 
<td><input type="text" value=" " name="buscaodc" onkeypress="if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;"  size="5"> 
</td> 
</tr> 
</table> 
<br><br> 
<p align=center> 
<input  type="submit" name="aceptar" value="Buscar" class="boton" > 
</p> 
</form> 

<?php 
if( strtoupper$_SERVER['REQUEST_METHOD'] ) == "POST" )
Y otro con método GET, que es en el que tengo problemas:

Código PHP:
<form name="habilitado" method="get" action="material_en_pedido.php"> 
<table align="center" bgcolor=#B0C4DE> 
<tr> 
<td>ODC Recibida:</td> 
<td><input type="checkbox" name="recibido"> 
</td> 
</tr> 
</table> 
<br><br> 
<p align=center> 
<input  type="submit" name="insertar" value="Guardar" class="boton" > 
</p> 
</form> 



<?php 
          
if(isset($_GET["recibido"])){    
     
              
$query "UPDATE odc 
                        SET recibido = 'SI' 
                        WHERE noodc = $buscaodc"

                
$result $conn->Execute($query) or die($conn->ErrorMsg() . "<br />" $query); 
              echo 
"<script type=\"text/javascript\">alert(\"ODC Recibida\");</script>";       
           } 
}
Cabe señalar que la última llave que cierra en el código arriba mencionado pertenece a esta condición if( strtoupper( $_SERVER['REQUEST_METHOD'] ) == "POST" ), la cerré ahí el valor de la variable $buscaodc se perdía una vez terminada dicha condición, también si cambio el método a POST si toma los valores, lo cual comprobé con var_dump, aunque de nuevo la variable $buscaodc se pierde, con el método GET simplemente no hace nada.

Como podrán ver no soy experta en php (aunque estoy leyendo manuales).

Gracias por su ayuda
  #7 (permalink)  
Antiguo 24/02/2010, 13:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: falla con el metodo _get y _post

Tu formulario contiene solo el checkbox y el boton?

El valor del checkbox aparecera en la URL ($_GET) solamente cuando este marcado y necesitas agregar un campo oculto en el mismo formulario para la otra variable que no estas recibiendo:

<input type="hidden" name="tu_variable" value="<?php echo $tu_variable; ?>">
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 24/02/2010, 14:43
 
Fecha de Ingreso: enero-2010
Mensajes: 13
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: falla con el metodo _get y _post

Muuuuuuuuchísimas gracias por tu ayuda Triby.

Ya salió

le puse el campo oculto que mencionaste: <input type="hidden" name="tu_variable" value="<?php echo $tu_variable; ?>">
y listo.

Gracias de nuevo y que el resto de la semana sea genial para ti.

Saludos!

Etiquetas: falla, metodo, 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 16:15.