Bonjour à tous,

J'apprend à dévelloper avec le framework CakePHP, cette question ne concerne pas directement le framework je penses.

J'ai 2 formulaires dans une même page qui me serve à réaliser une estimation. Le premier formulaire sous forme de "SELECT" me permet de définir les type d'originaux que je souhaite, le second me permet d'effectuer mon calcul.

Le souci que je rencontre, est que lorsque je valide avec mon bouton calcul, j'ai toujours le meme résultat, à savoir celui du premier choix du 'SELECT'.

Voici le bout de mon code de ma page index de mon EstimationsController.

<?php $this->set('title_for_layout','Estimation');?>
 
<div class="wrapper">
   
    <h1 title="titre_section">1 - Quels types d'originaux :</h1>
 
   <?php echo $this->form->create('Estimation',array(
                                'url' => array('#' => 'menu')
                     ));?>
 
    <?php echo $this->Form->input(null, array(
        'name' => 'estimationChoice',
        'div' => array(
            'class' => 'original_choice',
          ),
        'options' => array( 'biscotte' =>'La biscotte',
              'pain'=>'Le pain',
              'painDeMie'=>'Le pain de Mie',
              'fromage'=>'Le fromage',
              'default'=>$this->form->data?$this->form->data:'biscotte',
    ));?>
   
    <?php echo $this->form->end(array(
        'label' => 'Go',
        'div' => array(
            'class' => 'btn_original_choice',
        )
    ));?>
   
   
    <section class="content_devis">
        <div id="divSuper8">
            <section>
                <h1 title="titre_section">2 - Estimation de films  <?php echo $tablePrices[$estimationChoice]['title'];?></h1>
 
                    <section>
                        <div class="deco_devis">
                            <img src="app/webroot/img/estimation/<?php echo $tablePrices[$estimationChoice]['image'];?>.png">
                            <p> <?php echo $tablePrices[$estimationChoice]['description'];?>.</p>
                        </div>
                    </section>
 
                    <?php echo $this->form->create('Estimation', array(
                        'action' => 'index',
                        'url' => array('#' => 'result_estim')
                    )); ?>
 
                    <section class="tableDevis">
                        <div>
                            <?php if ($tablePrices[$estimationChoice]['tableau']):?>
                                <table class="adminTable">
                                  <thead>
                                    <?php foreach ($tablePrices[$estimationChoice]['tableau'] as $row): ?>
                                        <tr>
                                            <?php foreach ($row as $key => $column):
                                                $colspan = '';
                                                if (count($row) == 1)
                                                {
                                                    $colspan = 'colspan="3"';
                                                }
                                                else if (count($row) == 2 && $key == 0)
                                                {
                                                    $colspan = 'colspan="2"';
                                                }
                                                ?>
                                                <td <?php echo $colspan; ?> style="border: 1px solid black;"><?php echo $column; ?></td>
                                            <?php endforeach; ?>
                                        </tr>
                                    <?php endforeach; ?>
                                    <thead>
                                </table>
                            <?php endif;?>
                        </div>
                    </section>
 
                    <?php echo $this->form->end(array(
                        'label' => 'Calcul',
                        'type' => 'submit',
            'onclick'=>'return calculDevis()',
                        'name' => 'valider',
                        'class' => 'boutonDevis',
                        '#' => 'result_estim',
                        'div' => array(
                            'class' => 'content_button_devis',
                        )
                    ));?>
            </section>
        </div>
    </section>
   
    <section class="result_estim" id="result_estim">
        <?php if(isset($_POST['valider'])){
            echo $this->element('estimation/calculDevisFilm');
        }
        ?>
    </section>

Merci de votre aide
Peut être ais-je mis un bout de code trop important ???
Personne n'aurais une idée ?
Le problème ne vient pas du fait que lorsque je clic sur "calcul" je rappel une page et le formulaire "SELECT"se réactualise sans garder en mémoire ?
Bonjour urlien

Oh je vois enfin quelqu'un qui travail avec Cakephp ! Je travail également avec et en ce moment je suis sur un gros projet. Je vais voir si c'est possible et comment, et je te fais une belle réponse Smiley cligne

EDIT : A première vu, comme ça, je vois déjà un gros problème : Tes deux formulaires portent le même nom : Estimation. Il est donc possible que dans le $this->request->data, tu ais des conflits entre les deux formulaires
Modifié par Kikimagik (29 Aug 2014 - 11:03)
Hey, merci de ta réponse, et oui cakePhp c'est gourmand.

Effectivement il y avait bien un conflit du aux noms identiques. J'ai tenté de changer de nom, mais rien n'as changé. Du coup pour dans mon SELECT j'ai mis un 'onchange'=>'this.form.submit()', ce qui me permet d'avancer mais qui ne me convient pas en réponse définitive.

Depuis combien de temps évolue tu sur CakePHP. Pour ma part c'est mon premier frameworks, et au niveau développement je n'ai qu'une petite année de connaissance et Cakephp me facilite énormément la vie même si parfois mes pauvres connaissances PHP me font des misères.

Bon si tu as une solution pour mon souci de formulaire...yé souis préneure

Merci
+