Foros del Web » Programando para Internet » PHP »

Problema con variables recogidas por post

Estas en el tema de Problema con variables recogidas por post en el foro de PHP en Foros del Web. Hola a todos, ya estoy aquí de nuevo, con un problemilla que no consigo solucionar. Tengo una clase llamada clientes, que es la que tiene ...
  #1 (permalink)  
Antiguo 23/01/2013, 05:28
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Problema con variables recogidas por post

Hola a todos, ya estoy aquí de nuevo, con un problemilla que no consigo solucionar.

Tengo una clase llamada clientes, que es la que tiene las dos funciones que necesito para este caso.
La primera monta la cabecera de la pagina de edicion de un cliente (MontaCabeceraEditaCli) y la segunda (MontaFormEdicionCli) monta los datos del cliente seleccionado con un form para poder cazar de nuevo los datos.
Os muestro como la he implementado. Ya se que tengo etiquetas y codigo html obsoleto, pero lo que me importa en estos momentos es el codigo php.
Solo pongo dos campos para que no resulta muy larga la función.

Código PHP:
 public function MontaFormEdicionCli($idSeleccionado){
        require ("GestioncodPostal.php");
        $GesCodPos= new CodPostal;
        $consulta= "select $this->CamposAMostrar from clientes ";
        $consulta.= "inner join codigopostal co on co.idCodPostal= fk_codPostal ";
        $consulta.= "where idCliente= $idSeleccionado";        
        $datos= @mysql_query($consulta) or die("Function MontaFormEdicionCli: Error al buscar la información del cliente seleccionado.");
        $resul = @mysql_fetch_array($datos);
        
        ?>
             <form name='formEdit' method='post' action='EditarCliente.php'>  
            <TABLE border="0" align="center" cellspacing="1" cellpadding="1" width="385" > 
                <TR>
                    <TD bgcolor="#3CB371">Nombre </TD>
                    <TD><input type='text' name="Nombre" value = '<? echo $resul["nombre"?>' maxlength='50'></TD>
                </TR>       
                <TR>
                    <TD bgcolor="#3CB371">Apellido1 </TD>
                    <TD><input type='text' name="Apellido1" value = '<? echo $resul["apellido1"?>' maxlength='50'></TD>
                </TR>       
 </TABLE>
        </form>
        <?
A estas funciones las llamo desde otra pagina llamada "EditarCliente.php", que lo que tiene es lo siguiente:
Código PHP:
<?
    
require("GestionaClientes.php");
    
$DatCli= new clientes;   
    require(
"GestionContratos.php");
    
$Contr= new Contratos;    
    
$operacion "";
    
$IdSeleccionado="";
    if (isset(
$_GET["operacion"])){
        if (
strpos($_GET["operacion"], ":")!== false){
            
$RecogeDatosexplode(":",$_GET["operacion"]);                    
            
$operacion=$RecogeDatos[0];
            
$IdSeleccionado$RecogeDatos["1"];

        }
    } 
    if (isset(
$_POST["btnGuardaCli"])){      
       
$resul$DatCli->SiDatosCorrectos($_POST["Nombre"], $_POST["Apellido1"], $_POST["identificacion"], $_POST["tel"]);
       if (
$resul){
           
$DatCli->ActualizaCliente ($_POST["Nombre"], $_POST["Apellido1"], $_POST["identificacion"],
                   
$_POST["tel"], $_POST["Apellido2"], $_POST["email"], $_POST["CodigoPostal"]);
           
header("location:Index.php");
       }
    }
    
$DatCli->MontaCabeceraEditaCli();
    
$DatCli->OpenConexionBD();    
    
$DatCli->MontaFormEdicionCli($IdSeleccionado);
    
 
?>
<br>   
    <form name='formBtnEdit' method='post' action='EditarCliente.php'>  
    <TABLE border="0" align="center" cellspacing="1" cellpadding="1" width="385"> 
        <TR>            
            <TD align="left"><input type="SUBMIT" name="btnGuardaCli" value="Guarda Datos"></TD>
            <TD align="left"><input type="SUBMIT" name="btnCreaCon" value="Crear Contrato"></TD>
            <TD align="left"><input type="SUBMIT" name="btnCancel" value="Cancelar"></TD>
        </TR>
    </TABLE>
    </form>
    <HR>
    <?
       $Contr
->MontaRejillaContratos($IdSeleccionado); 
    
?>
   </TD>
   </form>
   </center>
Se supone que cuando el usuario de al boton de guardar los datos, podría cazar los valores de las variables de Nombre y apellido1, sin embargo me dice que index indefinido.
Espero no haberos amargado con tanto código y podáis decirme donde estoy fallando.
Gracias y un saludo
  #2 (permalink)  
Antiguo 23/01/2013, 06:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con variables recogidas por post

Primero ademas de name pon id a los objetos aun que sea con el mismo valor...

Luego tienes dos formularios

<form name='formEdit' method='post' action='EditarCliente.php'>
....
</form>

generado por la función MontaFormEdicionCli y

<form name='formBtnEdit' method='post' action='EditarCliente.php'>
....
</form>

en el fichero EditarCliente.php el submit lo tienes en el segundo y ese no tiene los campos....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 23/01/2013 a las 06:22
  #3 (permalink)  
Antiguo 23/01/2013, 06:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con variables recogidas por post

Cita:
Iniciado por quimfv Ver Mensaje
Primero ademas de name pon id a los objetos aun que sea con el mismo valor...
Perdona pero aquí no te entiendo. Te refieres a $_GET["operacion"]? Si es eso, esta gestión no tiene nada que ver. La utilizo para otra cosa

Luego tienes dos formularios

<form name='formEdit' method='post' action='EditarCliente.php'>
....
</form>

generado por la función MontaFormEdicionCli y

<form name='formBtnEdit' method='post' action='EditarCliente.php'>
....
</form>
Si, al final he puesto dos formularios por probar porque no me funcionaba, pero inicialmente tenía uno.

en el fichero EditarCliente.php el submit lo tienes en el segundo y ese no tiene los campos....
Con esto que quieres decir, que los campos deben estar en el mismo sitio que el submit? No pueden estar en formularios o funciones diferentes?
Yo creía que $_POST era global en una pagina y que por lo tanto tendría toda la información en ella
.
  #4 (permalink)  
Antiguo 24/01/2013, 01:57
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problema con variables recogidas por post

Cita:
Primero ademas de name pon id a los objetos aun que sea con el mismo valor...

Perdona pero aquí no te entiendo. Te refieres a $_GET["operacion"]? Si es eso, esta gestión no tiene nada que ver. La utilizo para otra cosa
<form name='formEdit' id='formEdit' method='post' action='EditarCliente.php'>

<input type='text' name="Nombre" id="Nombre" value = '<? echo $resul["nombre"] ?>

<input type="submit" name="btnCancel" id="btnCancel" value="Cancelar">

Habria jurado que submit solo manda los elementos del formulario donde esta, pero acabo de comprovar que no, manda incluso los de otro formulario con name y id distintos....

Mira el contenido de post... a ver que sale

echo "<pre>";
print_r($_POST);
echo "</pre>";
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 24/01/2013 a las 02:05

Etiquetas: html, mysql, post, select, variables
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 22:01.