Partage
  • Partager sur Facebook
  • Partager sur Twitter

ajax non reconnu sur symfony

symfony

    17 octobre 2020 à 15:30:55

    Bonjour à tous,

    je suis en train de développer un champ imbriqué que j'ai déjà effectué sur un ancien projet en Ajax

    mais cette fois-ci la valeur retournée dans l'ajax n'est pas bonne j'ai l'alerte erreur

    voici mon controller 

         /**
         *  @param Request $request
         * @return JsonResponse $data
         * @Route("/ajaxMois", name="ajaxMois")
         */
        public function ajaxMois(Request $request): Response
        {
            $mois = $request->request->get('mois');
            dump($mois);
        $jour = array();
    
            if (($mois == 1) || ($mois == 3) || ($mois == 5) || ($mois == 7) || ($mois == 8) || ($mois == 10) || ($mois == 12) )
            {
                $jour = [
                    1 => 1,
                    2 => 2,
                    3 => 3,
                    4 => 4,
                    5 => 5,
                    6 => 6,
                    7 => 7,
                    8 => 8,
                    9 => 9,
                    10 => 10,
                    11 => 11,
                    12 => 12,
                    13 => 13,
                    14 => 14,
                    15 => 15,
                    16 => 16,
                    17 => 17,
                    18 => 18,
                    19 => 19,
                    20 => 20,
                    21 => 21,
                    22 => 22,
                    23 => 23,
                    24 => 24,
                    25 => 25,
                    26 => 26,
                    27 => 27,
                    28 => 28,
                    29 => 29,
                    30 => 30,
                    31 => 31,
                   
                ];
            }
    
            elseif (($mois == 4) || ($mois == 6) || ($mois == 9) || ($mois == 11) )
            {
                $jour = [
                    1 => 1,
                    2 => 2,
                    3 => 3,
                    4 => 4,
                    5 => 5,
                    6 => 6,
                    7 => 7,
                    8 => 8,
                    9 => 9,
                    10 => 10,
                    11 => 11,
                    12 => 12,
                    13 => 13,
                    14 => 14,
                    15 => 15,
                    16 => 16,
                    17 => 17,
                    18 => 18,
                    19 => 19,
                    20 => 20,
                    21 => 21,
                    22 => 22,
                    23 => 23,
                    24 => 24,
                    25 => 25,
                    26 => 26,
                    27 => 27,
                    28 => 28,
                    29 => 29,
                    30 => 30,
                   
                ];
            }
    
            elseif ($mois == 2 )
            {
                $jour = [
                    1 => 1,
                    2 => 2,
                    3 => 3,
                    4 => 4,
                    5 => 5,
                    6 => 6,
                    7 => 7,
                    8 => 8,
                    9 => 9,
                    10 => 10,
                    11 => 11,
                    12 => 12,
                    13 => 13,
                    14 => 14,
                    15 => 15,
                    16 => 16,
                    17 => 17,
                    18 => 18,
                    19 => 19,
                    20 => 20,
                    21 => 21,
                    22 => 22,
                    23 => 23,
                    24 => 24,
                    25 => 25,
                    26 => 26,
                    27 => 27,
                    28 => 28,
                    29 => 29,
                   
                ];
            }
            dump($jour); die;
            $data = $this->jsonForMois($jour);
            return new JsonResponse($data);
         
        }
    
        
    
        /**
    
         * @param array $jour
         * @return array $data
         */
        public function jsonForMois ($jour)
        {
            $data = array ();
            for ($i = 0; $i < count($jour); $i++)
            {
               $jour[$i] = array("key" => $jour[$i], "value" => $jour[$i]);
               
            }
            array_push($data, $jour);
            return $data; dump($data); die;
        }
    



    merci pour votre aide

    -
    Edité par PierreRichard78 17 octobre 2020 à 16:22:39

    • Partager sur Facebook
    • Partager sur Twitter

    la chance sourit aux audacieux

    Anonyme
      19 octobre 2020 à 11:01:09

      Wow.

      • Le nombre de jours d'un mois dépend de l'année
      • date('t') retourne le nombre de jours d'un mois donné, c’est beaucoup plus pertinent que 100 lignes de conditions
      • ajaxMois et jsonForMois ne veulent rien dire
      • Le type de retour de ajaxMois est incohérent avec sa phpDoc
      • La phpDoc est inutile ici
      • $data est inutile
      • Les contrôleurs héritent d’une méthode json
      • Recopier les valeurs du tableau dans les clés n’a aucun intérêt
      • key et value ont forcément la même valeur, à part alourdir la réponse ça n’a donc aucun intérêt
      • du code après un return ou un die ne s’exécutera jamais
      • dump écrit du code HTML qui invalidera tout JSON

      Ce serait pertinent pour toi de chercher comment faire quelque chose avant de le faire.

      • Partager sur Facebook
      • Partager sur Twitter
        19 octobre 2020 à 18:51:24

        date('t') ca n'existe pas

        mes valeurs ne viennent pas d'un format date, je créé mes inputs de date

        les dump et les die je sais bien c'était mes traces pour la recherche

        pour le reste Ajax je suis pas trop connaisseur, en tout cas par ce code la fonction fonctionne

        mais si y'a des améliorations je ne suis pas contre

        • Partager sur Facebook
        • Partager sur Twitter

        la chance sourit aux audacieux

        ajax non reconnu sur symfony

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown