Bonjour,
Après recherche sur le web, je n'est pas trouvé de réponses à ma question.

Je voudrais savoir si il est possible d'indiquer l'envoi d'un formulaire selon un bouton radio. Je m’explique ...

Dans mon menu, j'ai une barre de recherche avec comme choix de recherche "Assistant" ou "Personne" (Bouton Radio).
initialement quand je lance la recherche, cela passe par AssistantsController::recherche() mais comment faire pour lancer la recherche selon le bouton radio sélectionné (envoi du formulaire à AssistantsController::recherche() ou PersonnesController::recherche() )

<div id="recherche">
    <?php echo $this->Form->create('Assistant', array('controller'=>'assistant','action' => 'recherche')); // envoi les infos au AssistantsController, fonction recherche ?>
    <?php echo $this->Form->input('motcle', array('label'=>'Recherche')); ?>
    <?php echo $this->Form->input('par', array(
    'options' => array('assistant' => 'Assistant' , 'personnne' => 'Personne') , 'type' => 'radio' , 'legend' => false , 'default' => 'assistant')); ?>
    <?php echo $this->Form->end('Rechercher'); ?>
</div>

Cordialement.

2 réponses


maxime014
Auteur
Réponse acceptée

Bonjour et merci pour la rapidité de ta réponse.

Sachant que je ne suis pas très doué pour le JS, je me suis tourné vers une autre solution :

J'envoie mon formulaire à AssistantsControlleur (avec les variables $motcle et $modeDeRecherche)

Mon code ressemble à ça :

// AssistantController::recherche()
// Je récupère mes 2 variables
$motcle = $this->data'Assistant']'motcle'];
$modeDeRecherche = $this->data'Assistant']'modeDeRecherche'] ;
if ($modeDeRecherche == 'assistant') {
         // j’effectue ma fonction recherche normalement dans le AssistantsController
}
else {
        //Je redirige vers PersonnesController::recherche()
    $this->redirect(array('controller' => 'personnes', 'action' => 'recherche' , $motcle));
}

PersonneController::recherche($motcle) // récupération de la variable transmise
{
// J'effectue ma recherche dans PersonnesController
}

Voilà .... ça pourra peut-être aider d'autres personnes ;)

Bonne continuation et encore merci :) !

Slt !

Je ne suis pas sûr d'avoir parfaitement compris ton souhait : Tu souhaites que l'utilisateur de ton formulaire "choisisse" le controller de destination ?
Si c'est bien ça, je te conseille de passer par du javascript :

<form action="url.php" id="id1" method="post">
    <label for=""><input type="radio" name="choixDest" value="url1.php" checked /> URL 1</label>
    <label for=""><input type="radio" name="choixDest" value="url2.php" checked /> URL 2</label>
</form>
<p>L'url de destination : <span></span></p>
<script type="text/javascript">
    // En utilisant du jQuery:
    $(document).ready(function(){
        $(':radio[name="choixDest"]').click(function(){
            $('form#id1').attr('action', $(this).val());
            $('p > span').text($('form').attr('action'));
        });
    });
</script>

JsFiddle

J'espère avoir pu t'aider un peu :)

Bon code ...