Zend Framework :Envoi d une variable de la vue vers le controlle

victoria ghabri Messages postés 114 Statut Membre -  
victoria ghabri Messages postés 114 Statut Membre -
Bonjour,
Comment je peut envoyer une variable de ma vue vers le controlleur ,je veu l utiliser dans le controlleur "properties" ,dans l action "tasktodo".

*******************************
vue : envoi de la variable : BB (que je ne connait pas comment )
*******************************

function popup1(message) {
var answer = confirm ("You are in the good address ");
if (answer)
{window.location = "<?php echo $this->url(array('controller'=>'properties', "action" => "tasktodo","Address" => $property->Address ), null, true);?>";

}
else
alert ("Sorry bad address ");
}

********************************
Contolleur : reception de BB
*********************************
$var = $this->_request->getParam('BB');

2 réponses

  1. theshadoo Messages postés 878 Statut Membre 123
     
    depuis la vue tu peux appeler ce type de méthode par exemple :

    $this->action('action', 'controller', 'module');

    Rappelle toi par contre que la vue ne doit pas faire office de controller et que l'on doit garder une architecture MVC !

    L'appelle d'un autre controller ou méthode depuis une vue cela peut être différent que de vouloir passer une variable depuis la vue à un controller.
    En tous les cas si c'est pour un appelle d'un controller et méthode différente depuis une vue différente alors la méthode action de la vue est là bonne méthode
    0
  2. victoria ghabri Messages postés 114 Statut Membre 5
     
    Bonjour
    J ai fait quelques rectifications :
    Mais j ai un noveua probleme ,j ai utilise ajax pour envoyer une variable ,la fonction success marche bien ,cad que la variable a ete bien envoye au controller ,mais je n arrive pas a recuperer cette variable au niveau du controller .Voila un petit apercus sur le code :
    Au niveau de la vue :
    *********************************
    $.ajax({
    type: "POST",
    url: "<?php echo $this->url(array('controller' => 'properties', "action" => "tasktodo")); ?>",

    // url: "C:/wamp/www/pm-sys-03/application/controllers/PropertiesController.php",

    // data: "variable1=" + somevar1 + "\variable2="+ somevar2,
    data: somevar1 ,

    success: function(msg)
    { alert("bbbbb");
    alert(somevar1);
    window.location = "<?php echo $this->url(array('controller'=>'properties', "action" => "tasktodo","Address" => $property->Address), null, true);?>";

    }
    });

    //}
    //else

    //alert ("Sorry bad address ");

    }
    **************************************

    Au niveau du controller
    *********************
    public function tasktodoAction()
    {
    // page title
    $this->view->page_heading = "Tasks To Do ";

    //get the address field from the previous view
    $adr = $this->_request->getParam('Address');

    //send the address field to the next view: tasktodo
    $this->view->address=$adr;

    $count=0;
    $this->view->nb=$count;

    if($this->getRequest()->isPost())
    { echo "nnnnnn";
    if (isset($_POST['variable1']))
    {
    $this->getRequest()->isPost();
    $value=$_POST['variable1'];

    }
    }
    $k=$this->_request->getParam('somevar1');
    //echo "55555555".$k ."7777777777777";
    $loc=new Application_Model_DbTable_Location();
    //$loc->insert(array( "address" => $_POST['variable1']));

    //insertion dans la base de donnes

    }
    0