Bonjour à tous,
Voilà je suis un jeune développeur ayant un projet de stage assez conséquent, et je m'en sort plus je ne trouve pas de solution...
Voici mon problème, je suis très novice en javascript (Je ne jure que par PHP HTML5 CSS3), j'ai quelques bases mais ayant une mémoire sélective non contrôlé j'oublie vite se que j'ai appris en javascript, et pour revoir le cours de javascript il me faudrait 70j sans compter la dizaine de jours d'apprentissage d'AJAX, je n'ai malheureusement pas le temps...
Le site que j'ai repris était en faite une structure HTML CSS AJAX, il ne me manquais plus "que" mettre les requêtes, les algo's et régler quelques bugs, et styliser le final.
PROBLEME : Ajax... c'est merveilleux, sauf quand on ne sais pas l'utiliser alors là c'est juste un cauchemar dès qu'une ligne Ajax apparaît, je bave... Je vous explique :
enfaîte le site est en intranet, Ajax est utilisé pour que l'URL reste tels quels lors d'un chargement de page et lorsque l'on clique sur le menu juste une div est "reload" pour que la page ne se recharge pas entièrement, rien d'extraordinaire, mais voila je suis confronter à plusieurs <FORM> et la réaction entre ajax, les formulaires suivis d'un submit équivaut à un retour à la page d'accueil... ni plus ni moins.
Du coup je suis à la recherche d'une âme charitable qui pourrais m'aider à envoyer se fichue formulaire.
Voici mon code raccourcis :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 <fieldset class="poste"> <legend>Poste</legend> <hr /> <label for="service">Service</label> <!-- --------------------------------------------- CHOIX DU SERVICE------------------------------------------------------------------ --> <select name="service" id="service" onchange="javascript:submit(this);"> <option value="vide">-- Service --</option> <?php include '../oracle/connexion.php'; $ora_conn=oci_connect($login,$mdp,$host); $query="SELECT * FROM service"; $stmt = oci_parse($ora_conn, $query); oci_execute($stmt, OCI_DEFAULT); $results = oci_fetch_array($stmt, OCI_BOTH); if ($results){ oci_execute($stmt, OCI_DEFAULT); // Parcours du tableau $results pour afficher les résultats : while (oci_fetch($stmt)) { ?> <option value="<?php echo oci_result($stmt, "ID_SERVICE"); ?>"> <?php echo oci_result($stmt, "NOM_SERVICE"); ?></option> <?php } } ?> </select> <br/> <!-- --------------------------------------------- CHOIX DE L'EQUIPE SELON LE CHOIX DU SERVICE------------------------------------------------------------------ --> <label for="Equipe">Equipe </label> <select name="equipe" id="equipe"> <option value="">-- Equipe --</option> <?php if(isset( $_POST['service'])){ include '../oracle/connexion.php'; $ora_conn=oci_connect($login,$mdp,$host); $query="SELECT * FROM equipe WHERE service_ID='".$_POST['service']."'"; $stmt = oci_parse($ora_conn, $query); oci_execute($stmt, OCI_DEFAULT); $results = oci_fetch_array($stmt, OCI_BOTH); if ($results){ oci_execute($stmt, OCI_DEFAULT); // Parcours du tableau $results pour afficher les résultats : while (oci_fetch($stmt)) { ?> <option value="<?php echo oci_result($stmt, "ID_EQUIPE"); ?>"> <?php echo oci_result($stmt, "NOM_EQUIPE"); ?></option> <?php } } } ?> </select> <br />
EXPLICATION : Le code fait en sorte que lorsque l'on choisit un service, une requête se fait automatiquement grâce au javascript submit(this) pour avoir un choix lié à la liste déroulante précédente. MAIS le tout est dans un formulaire en méthode POST, lorsque je choisis un service, j'ai un retour à la page d'accueil. Je sais pourquoi (AJAX) mais je ne sais pas comment on reload une page en AJAX avec un retour de formulaire...
ENVIRONNEMENT : le code que j'ai choisi de vous montrer est dans une DIV nommé "content_inner_wrapper" qui est reload pour chaque cliques grâce à AJAX, dans le header tous les scripts sont présents, et le resteront sur toutes les pages car juste le "Body" est reload.
voici le code qui me permet de reload les pages :
Merci beaucoup de votre lecture en espérant que le fleuron des développeurs Français vont pouvoir m'aider :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $(document).ready(function () { $("a.load") .click(function() { $('#content_inner_wrapper').load(this.href); return false; }); });
PS : J'ai une solution pour les autres pages qui n'est pas vraiment très "hygiénique" l'iFrames. Mais dans ce cas là je ne peut pas faire de bidouille.
PS2 : Je me trompe peut être sur l'effet du code AJAX ci-dessus, comme dit précédemment je suis une bille en JS/JQuery/AJAX... Oui c'est honteux ... mais je m'y attellerais dans mes prochaines études.
CDLT Zaelos
Partager