Recupérer l'information

Par obenamar, il y a 10 ans


Bonjour,

je débute dans cakephp et après plusieurs tentatives sur ce probleme, je n'y arrive toujours pas et c'est pour cela que je sollicite votre aide.
En fait dans ma vue j'ai crée un formulaire qu'avec un bouton, je m'explique si je clique dessus il me renvoie faire une autre action. Mais mon problème j'aimerais bien faire des tests en base de donnees (comparer par exemple) mais je n'arrive pas à récupérer l'ID ou bien le paramètre.

Merci pour votre aide

Voila ma vue:

<?php 
        foreach($ingredients as $data):

            $test = $data["Question"];
            echo $test["Questions"];
        endforeach;

foreach($ingredients as $data):

$test = $data["Question"];
echo $this->Form->create(null, array('url' => 
array('controller' => 'Reponses', 'action' => 'reponse', 
'parametre' => 'exemple')));
echo $this->Form->end($test["Suggestion1"], 
array('class' => 'valeur'));

        endforeach;

9 réponses

kndeye, il y a 10 ans

Salut, je sais pas ce que tu veux vérifier, mais si c'est des informations postées il faut les inclure dans ton formulaire car là tu envois aucune donnée.

obenamar, il y a 10 ans

En fait je veux récupére le bouton pour faire des tests en base de donnees

Ferias Quarante, il y a 10 ans

Il faut que le bouton de validation est un name, après dans ton controlleur tu peux tester la valeur du bouton cliqué

obenamar, il y a 10 ans

j'ai essayé aussi il me renvoie toujours la valeur null et un message d'erreur

Warning (2): Missing argument 1 for ReponsesController::resultat() [APP\Controller\ReponsesController.php, line 8]
Notice (8): Undefined variable: id [APP\Controller\ReponsesController.php, line 12]
\app\Controller\ReponsesController.php (line 12)
null

FactureHero.com, il y a 10 ans

Post le code de ton controller ReponsesController. Toute la function ou au moins autour de la ligne 12
et peut-être qu'on pourra t'aider.

FactureHero.com, il y a 10 ans

Si tu veux récupérer un tableau de valeurs, il faudrait :
1/ que tu aies des champs input dans ton fomrulaire (de type hidden si tu veux)
2/ quand tu postes le formulaire, sauf erreur fait plutôt ton bouton submit comme ça :

<?php echo $this->Form->submit('intitulé du bouton', array('name'=>'lenamedubouton', 'class' => 'btn'))?>

Et dans le controller tu récupères les datas :

if (isset($this->request->data['lenamedubouton'])) { $datasend = array( 'nomDeTonChamp' => $valeur, 'nomDeTonChamp2' => $valeur ///... );
obenamar, il y a 10 ans

Oui merci
voila sa fonctionne bien mais serait il possible de récupérer l'ID de ce bouton au lieu du nom

FactureHero.com, il y a 10 ans

Ton bouton a un ID. ALors je ne sais pas pourquoi il est là ? ton id devrais plutôt être dans un input de type hidden.

Mais si c'est ça que tu as : alors je le récupèrerai en Javascript soit au chargement de la page soit au click et je le mettrai dans un input (id), avant d'envoyer les datas.

1 / tu crée un champ input 'id' comme tu as créé les autres.
2/ en JS tu récupères l'id de ton bouton

$('.mybutton').click(function (e) { var a =$this; e.preventDefault(); //on récupère la valeur de l'attribut id du bouton dans la variable id var id = a.attr('id'); // on insère la valeur de l'id dans l'input $('input#inputid').val(id); });

2 choses :
1 / bien qu'on trouve solution à tout je pense que ton truc "global" peut largement être amélioré et gagnerai a avoir un code "plus classe" :) (je ne capte pas pourquoi ton Id se retrouve là :) )
2/ Du coup sur le code du dessus, à mon avis fais le plutôt sur l'événement du chargement de la page que sur le clic.

PS : si la solution du dessus te convient n'hésites pas à la passer en résolu ;)

obenamar, il y a 10 ans

Oui merci