Index.php ne "reçoit" pas le $_GET['action']
Résolu/Fermé
ImTheGreatBeginner
Messages postés
5
Date d'inscription
mardi 1 septembre 2020
Statut
Membre
Dernière intervention
1 septembre 2020
-
1 sept. 2020 à 14:17
ImTheGreatBeginner Messages postés 5 Date d'inscription mardi 1 septembre 2020 Statut Membre Dernière intervention 1 septembre 2020 - 1 sept. 2020 à 23:59
ImTheGreatBeginner Messages postés 5 Date d'inscription mardi 1 septembre 2020 Statut Membre Dernière intervention 1 septembre 2020 - 1 sept. 2020 à 23:59
A voir également:
- Php get action
- Action - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Action fans - Accueil - Guide arnaque
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Lidl action - Guide
5 réponses
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
Ambassadeur
1 568
1 sept. 2020 à 16:28
1 sept. 2020 à 16:28
bonjour, il est préférable de partager du texte, pas des images. tout en veillant à utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
ImTheGreatBeginner
Messages postés
5
Date d'inscription
mardi 1 septembre 2020
Statut
Membre
Dernière intervention
1 septembre 2020
1 sept. 2020 à 16:42
1 sept. 2020 à 16:42
Bonjour,
Je suis en train d’intégrer un site en structure MVC + index, et sur ma page contact j'ai un formulaire pour poser une question, très basique:

Ma vue :
+ template:
Mon index:
Mon controller:
Mon fichier Js :
Qui renvoi les donnés en Json
Voici mon problème:
Lorsque j'envoi le formulaire rien ne se passe, je précise que plus haut dans mon code j'ai un autre formulaire qui fonctionne mais mal.
Je suis débutant mais j'ai déja programmer en structure MVC mais je n'arrive pas à comprendre mon erreur.
Si quelqu'un a une piste? d'avance merci
Je suis en train d’intégrer un site en structure MVC + index, et sur ma page contact j'ai un formulaire pour poser une question, très basique:
Ma vue :
<?php $title = 'Contact'; ?> <?php ob_start(); ?> <div class="contactMain"> <div class="contactBanner"><h1>Contact</h1></div> <div class="contactContent"> <div class="offset-lg-2 col-lg-3 shadow-lg contactOther"> <div class="otherWebsite"> <h3>Horaires d'ouverture <i class="far fa-clock"></i></h3> <p>Disponible du lundi au vendredi, de 9h à 13h et de 14h à 19h.</p> </div> <div class="phoneContact"> <h3>Téléphone <i class="fas fa-phone-square-alt"></i></h3> <p>04 78 37 88 15</p> </div> <div class="mailContact"> <h3>E-mail <i class="fas fa-at"></i></h3> <a href="mailto:name@email.com">Link text</a> </div> </div> <div class="offset-lg-1 col-lg-4 shadow-lg contactFormulary"> <h2>Poser votre question</h2> <div class="formulary "> <form method="POST" action="index.php?action=sendQuestion" id="questionForm" class="questionFormulary"> <label >Votre adresse mail:</label> <input name="mail" type="email" class="form-control" placeholder="name@example.com" required> <button class="btn btn-warning " type="submit">Envoyer</button> </form> <div class="formularyMessage"><span id="questionMessage"></span></div> </div> </div> </div> </div> <?php $content = ob_get_clean(); ?> <?php require('templateWithNav.php'); ?>
+ template:
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8" /> <title><?= $title ?></title> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://kit.fontawesome.com/76eb1105ab.js" crossorigin="anonymous"></script> <script src="public/js/jquery-3.4.1.min.js"></script> <link rel="stylesheet" href="dist/css/bootstrap.min"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <link href="public/css/style.css" rel="stylesheet" /> <link rel="shortcut icon" type="image/jpg" href="public/images/logo.jpg"> </head> <body> <header > <div class="row templateMenu shadow-sm"> <div class="titleBlock col-md-3"> <a href="index.php?action=main"><img src="public/images/logo.jpg" alt="logo"></a> <h4><span>Raparations et dépannage électroménager sur </span><span class="city">Lyon</span>.</h4> </div> <div class="col-md-3 titleEmplacement" > <p id="navTitle"><i class="fas fa-phone-square-alt"></i> 04 78 37 88 15</p></div> <nav class="col-md-6"> <ul> <li><a href="index.php?action=main">Accueil</a></li> <li><a href="index.php?action=repair">Un dépannage ?</a></li> <li><a href="index.php?action=eco">Une démarche ECO</a></li> <li><a href="index.php?action=aboutUs">A propos de nous</a></li> <li class="contactButton"><a class="btn btn-warning " href="index.php?action=contact">Nous contacter</a></li> </ul> </nav> </div> </header> <div class="mainContent"> <?= $content?> </div> <footer > <div id="topBtn"><i class="far fa-arrow-alt-circle-up"></i></div> <div class="row templateFooter"> <div class="col-md-3 offset-md-2 mapFooter"> <ul> <li><img src="public/images/logo.jpg" alt="logo"></li> <li>E-menager</li> <li>75 cours Charlemagne</li> <li>69002 Lyon</li> <li><a href=""><i class="fab fa-facebook-square"></i></a><i class="fas fa-envelope-square"></i><i class="fab fa-twitter-square"></i></li> <li></li> </ul> </div> <div class="col-md-4 offset-md-1 contactFooter"> <ul> <li><h2>Contactez-nous pour un rendez-vous <span class="argumentFooter">RAPIDE</span></h2></li> <li class="phoneFooter"><strong><i class="fas fa-phone-alt"></i> 04 78 37 88 15</strong></li> <li>Disponible du lundi au samedi, de 9h à 13h et de 14h à 19h.</li> </ul> </div> </div> </footer> <script src="public/js/slider.js"></script> <script src="public/js/scroll.js"></script> <script src="public/js/form.js"></script> <script src="public/js/topBtn.js"></script> <script src="public/js/navTitle.js"></script> <script src="public/js/questionForm.js"></script> </body> </html>
Mon index:
<?php require_once('controller/frontend.php'); $frontendController = new FrontendController(); try { if (isset($_GET['action'])) { if ($_GET['action'] == 'main') { $frontendController->main(); } elseif ($_GET['action'] == 'repair') { $frontendController->repairCon(); } elseif ($_GET['action'] == 'eco') { $frontendController->ecoCon(); } elseif ($_GET['action'] == 'aboutUs') { $frontendController->aboutUsCon(); } elseif ($_GET['action'] == 'contact') { $frontendController->contactCon(); } elseif ($_GET['action'] == 'sendMail') { if (!empty($_POST['test'])){ $frontendController->locateAsk($_POST['test']); } else { $frontendController->ecoCon(); } } elseif ($_GET['action'] == 'sendLocate') { if (!empty($_POST['locate'])){ $frontendController->locateAsk($_POST['locate']); } else { $frontendController->ecoCon(); } } elseif ($_GET['action'] == 'sendQuestion') { if (!empty($_POST['mail']) && !empty($_POST['questionContent'])){ $frontendController->sendQuestionCon($_POST['mail'],$_POST['questionContent']); } else { $frontendController->repairCon(); } } } else { $frontendController->main(); } } catch(Exception $e) { echo 'Exception reçue : '; }
Mon controller:
<?php require_once('model/chatManager.php'); require_once('model/locateManager.php'); class FrontendController { public function main() { require('view/frontend/mainView.php'); } public function repairCon() { require('view/frontend/repairView.php'); } public function ecoCon() { require('view/frontend/ecoView.php'); } public function aboutUsCon() { require('view/frontend/aboutUsView.php'); } public function contactCon() { require('view/frontend/contactView.php'); } public function locateAsk($locate) { if ($locate==13330 || ($locate>69000 && $locate <69161)) { $data = array("message"=>"Votre commune ".$locate." est éligible à nos services de réparations.", "price" => "Prix: 95 Eur (Forfait classique)", "conditions" => "Voir les conditions plus bas dans la page")/** whatever you're serializing **/; header('Content-Type: application/json'); echo json_encode($data);die; } elseif ($locate==69350 || ($locate>69161 && $locate <69860)) { $data = array("message"=>"Votre commune ".$locate." est éligible à nos services de réparations.", "price" => "Prix: 150 Eur (Forfait + 35 Kms)", "conditions" => "Voir les conditions plus bas dans la page")/** whatever you're serializing **/; header('Content-Type: application/json'); echo json_encode($data);die; } else{ $data = array("message"=>"Malheureusement votre commune ".$locate." n'est pas éligible à nos services.", "price" => "", "conditions" => "")/** whatever you're serializing **/; header('Content-Type: application/json'); echo json_encode($data);die; } } public function sendQuestionCon($mail,$question) { $data = array("Message"=>"Votre question a bien été envoyée à l'adresse".$mail.", nous vous répondrons dans les plus brefs délais.")/** whatever you're serializing **/; header('Content-Type: application/json'); echo json_encode($data);die; } }
Mon fichier Js :
Qui renvoi les donnés en Json
$("#questionForm").submit(function(e){ e.preventDefault(); //empêcher une action par défaut var form_url = $(this).attr("action"); //récupérer l'URL du formulaire var form_method = $(this).attr("method"); //récupérer la méthode GET/POST du formulaire var form_data = $(this).serialize(); //Encoder les éléments du formulaire pour la soumission $.ajax({ url : form_url, type: form_method, data : form_data }).done(function(response){ console.log(response); $("#questionMessage").html(response.message); }); });
Voici mon problème:
Lorsque j'envoi le formulaire rien ne se passe, je précise que plus haut dans mon code j'ai un autre formulaire qui fonctionne mais mal.
Je suis débutant mais j'ai déja programmer en structure MVC mais je n'arrive pas à comprendre mon erreur.
Si quelqu'un a une piste? d'avance merci
jordane45
Messages postés
38440
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 février 2025
4 737
1 sept. 2020 à 17:05
1 sept. 2020 à 17:05
Bonjour
Quand tu dis qu'il ne se passe rien... c'est à dire ?
As tu vérifié si tu as des erreurs dans la console javascript de ton navigateur ? Peux tu nous en faire une capture écran ?
A noter que, vu que tu fais de l'ajax, je te conseille d'utiliser le navigateur FIREFOX car sa console permet une lecture plus simple des requête ajax....
(bien penser à cocher la case XHR ! )
Quand tu dis qu'il ne se passe rien... c'est à dire ?
As tu vérifié si tu as des erreurs dans la console javascript de ton navigateur ? Peux tu nous en faire une capture écran ?
A noter que, vu que tu fais de l'ajax, je te conseille d'utiliser le navigateur FIREFOX car sa console permet une lecture plus simple des requête ajax....
(bien penser à cocher la case XHR ! )
ImTheGreatBeginner
Messages postés
5
Date d'inscription
mardi 1 septembre 2020
Statut
Membre
Dernière intervention
1 septembre 2020
Modifié le 1 sept. 2020 à 17:58
Modifié le 1 sept. 2020 à 17:58
voici les messages d'erreur de la console.
Ps : j'ai un formulaire qui fonctionne avec Js sur une autre page, celui ci fonctionne
Échec du chargement pour l’élément <script> dont la source est « https://kit.fontawesome.com/76eb1105ab.js ». index.php:7:1
Cette page utilise la propriété non standard « zoom ». Envisagez d’utiliser calc() dans les valeurs des propriétés pertinentes ou utilisez « transform » avec « transform-origin: 0 0 ». index.php
Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://kit.fontawesome.com/76eb1105ab.js. Raison : échec de la requête CORS.
L’URI de la source de l’élément <script> n’est pas autorisé dans ce document : « https://kit.fontawesome.com/76eb1105ab.js ». index.php:7:1
Échec du chargement pour l’élément <script> dont la source est « https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js ». index.php:13:1
Object { Message: "Votre question a bien été envoyée à l'adressehjjkgh@gms.com, nous vous répondrons dans les plus brefs délais." }
questionForm.js:12:11
XHRPOSThttp://localhost/RDS/index.php?action=sendQuestion
[HTTP/1.1 200 OK 3ms]
Ce site semble utiliser un effet de positionnement lié au défilement. Cet effet pourrait ne pas fonctionner correctement avec le défilement asynchrone. Consultez https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects pour obtenir davantage de détails ou discuter des outils et des fonctionnalités liés. index.php
Ps : j'ai un formulaire qui fonctionne avec Js sur une autre page, celui ci fonctionne
jordane45
Messages postés
38440
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 février 2025
4 737
1 sept. 2020 à 20:51
1 sept. 2020 à 20:51
Ton ajax retourne
C'est donc que c'est bon.... non ?
index.php:13:1
Object { Message: "Votre question a bien été envoyée à l'adressehjjkgh@gms.com, nous vous répondrons dans les plus brefs délais." }
questionForm.js:12:11
XHRPOSThttp://localhost/RDS/index.php?action=sendQuestion
[HTTP/1.1 200 OK 3ms]
C'est donc que c'est bon.... non ?
ImTheGreatBeginner
Messages postés
5
Date d'inscription
mardi 1 septembre 2020
Statut
Membre
Dernière intervention
1 septembre 2020
1 sept. 2020 à 22:49
1 sept. 2020 à 22:49
ça m'aide bien mais, effectivement ça transmet bien la donne et l'index envoi la fonction. Mais sur mon index les conditions ne fonctionne pas. Car dans l'index je fais une verif avec !empty.
Quand je laisse un champ vide il ne se passe rien .
Quand je laisse un champ vide il ne se passe rien .
jordane45
Messages postés
38440
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 février 2025
4 737
1 sept. 2020 à 23:09
1 sept. 2020 à 23:09
Quand tes variables sont vides ça appelle la fonction repairCon
Et cette fonction fais un require d'un fichier...
Que tu affiche la console JavaScript lorsque tu laisses tes variables vides ?
Et sincèrement j'insiste pour des bugger de l'Ajax utilise la console du navigateur Firefox.....
ça te permettra de facilement visualiser les variables transmises est la réponse obtenu...
si tu ne sais pas comment débloquer correctement de l'Ajax, je t'invite à consulter un des nombreux tutoriel que tu peux facilement trouver sur internet à ce sujet.
Et cette fonction fais un require d'un fichier...
Que tu affiche la console JavaScript lorsque tu laisses tes variables vides ?
Et sincèrement j'insiste pour des bugger de l'Ajax utilise la console du navigateur Firefox.....
ça te permettra de facilement visualiser les variables transmises est la réponse obtenu...
si tu ne sais pas comment débloquer correctement de l'Ajax, je t'invite à consulter un des nombreux tutoriel que tu peux facilement trouver sur internet à ce sujet.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ImTheGreatBeginner
Messages postés
5
Date d'inscription
mardi 1 septembre 2020
Statut
Membre
Dernière intervention
1 septembre 2020
1 sept. 2020 à 23:59
1 sept. 2020 à 23:59
Je crois avoir trouver d'ou venait mon erreur.
Dans mon fichier javascript exécuté après avoir submit, il y a un e.preventDefault() ce qui ne permet pas de verif en if/else dans mon index. Du coup je vais faire autrement.
Merci pour toute ses informations.Ca m'a bien débloqué.
Je met en résolu.
Dans mon fichier javascript exécuté après avoir submit, il y a un e.preventDefault() ce qui ne permet pas de verif en if/else dans mon index. Du coup je vais faire autrement.
Merci pour toute ses informations.Ca m'a bien débloqué.
Je met en résolu.