Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/07/2008, 21:27
Avatar de destor77
destor77
 
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
problema con controlador y formulario

buenas:
estoy intentando encontrar donde esta el error en el cual cuando mando un formulario para crear una noticia no me toma el texto.

el controller es este:
Código PHP:
class NoticiasController extends ControllerBase {
        
        
        public function 
index(){
            include(
'modelos/NoticiaModel.php');
            
$noticia= new NoticiaModel();
            
            
$data["noticias"]=$noticia->ListarNoticias();
            
            
$this->view->show('noticias.php',$data);
            
        }
        
                
        public function 
NuevaNoticia(){
            include(
'modelos/NoticiaModel.php');
            
$noticia= new NoticiaModel();
            
            
$titulo=$_POST["titulo"];
            
$texto=$_POST["noticia"];
            
$data["mensaje"]=$noticia->NuevaNoticia($titulo,$texto);
            
$this->view->show('noticias.php',$data);
        }
        
        public function 
EditarNoticia(){
            include(
'modelos/NoticiaModel.php');
            
$noticia= new NoticiaModel();
            
            
$data["noticia"]=$noticia->BuscarNoticia($_POST["id"]);
            
$this->view->show('editar_noticia.php',$data);
        }
...... 
mi vista (se que lo del $paginacion= new PHPPaging; no es lo mejor pero... funca jejeje) es :
Código PHP:
<?php
    
include('head.php');
?>

    <div class="listado">
        <?php 
        $paginacion
= new PHPPaging
        
$data["paginacion"]=$paginacion->agregarConsulta($noticias);
        
$paginacion->porPagina(1); 
        
$paginacion->ejecutar();
        
        
        while(
$datos $paginacion->fetchResultado()) {?>
            <p>ID: <?php echo $datos['id'];?></p>
            <p>Titulo: <?php echo $datos['titulo'];?></p>
            <p>Texto: <?php echo $datos['texto'];?></p>
            <p>Fecha<?php echo $datos['fecha'];?></p>
            <br/><?php
        
}
        
$links $paginacion->fetchNavegacion(); 
        echo 
$links
        
?>
        
    </div>
    <?php
        
if (!$_POST["enviar"]){?>
    <div id="noticianueva">
        <form action="?controlador=noticias&amp;accion=nuevanoticia" method="POST">
            <p>Titulo:</p>
            <p><input type="text" name="titulo" id="titulo" value="" /></p>
            <p>Texto Noticia</p>
            <p><textarea name="noticia" id="noticia" cols="30" rows="15"></textarea></p>
            
            <p><input type="submit" name="enviar" value="Enviar" /></p>
        </form>
        
    </div>
    <?php
        
}
    if (
$_POST["enviar"]){
    
?>
    
    <div id="mensaje">
        <?php echo $mensaje;?><br/>
        <a href="?controlador=noticias&amp;accion=index">Volver</a>
    </div>
    <?php
        
echo "<br>texto=".$_POST["noticia"];
    }
?>
    
    
<?php
    
include('footer.php');
?>
y mi modelo es:
Código PHP:
class NoticiaModel {
        
        
/**
         * Guarda una nueva noticia
         *
         * @param string $titulo
         * @param string $texto
         * @return string
         */
        
public function NuevaNoticia($titulo,$texto){
            if (
$titulo=="" or $texto=""){
                
$noticia="el titulo o el texto estan vacios, debes completar todos los datos";
                return 
$noticia;
            }
            else{
                
$sql="insert into noticias (titulo,texto) values ('$titulo','$texto')";
                if (!
mysql_query($sql)){
                    
$noticia="Error al intentar guardar la noticia.<br/>".mysql_error();
                    return 
$noticia;
                }
                else{
                    
$noticia="La noticia se guardo correctamente<br/>";
                    return 
$noticia;
                }
                
            }
            
        }
        
        
/**
         * Busca una noticia
         *
         * @param integer $id
         * @return Noticia (array)
         */
        
public function BuscarNoticia($id){
            
$sql="select * from noticias where id='$id'";
            if (!
mysql_query($sql)){
                
$noticia="No se encontro la noticia que buscabas.<br>".mysql_error();
            }
            else{
                
$result=mysql_query($sql);
                
$noticia=mysql_fetch_array($result);
                return 
$noticia;
            }
        }
..... 
el problema esta en el metodo nuevanotica del controller nose porque no me toma el valor de $_post["noticia"] pero si me toma el valor de $_post["titulo"], porque pasa esto?

salu2