PHP - MySQL - JavaScript - AJAX : Problèmes
Résolu/Fermé
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
-
6 août 2008 à 10:41
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 - 7 août 2008 à 14:55
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 - 7 août 2008 à 14:55
A voir également:
- PHP - MySQL - JavaScript - AJAX : Problèmes
- Telecharger javascript - Télécharger - Langages
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
- Php natif - Forum PHP
19 réponses
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 12:14
7 août 2008 à 12:14
CSS Tu met:
HTML tu met:
Si j'ai bien compris le 2/ n'est pas réglé?
.menu { width: 180px; position: fixed; top: 0px; left: 0px; height: 100%; background-color: #FDEDC1; z-index: 2; } .sMenu { margin-left: 19px; margin-top: 54px; }
HTML tu met:
<div class="menu"> <div class="sMenu"> <p id="mtitle">Menu</p> <p><a href="formulaire.php?id_eleve=0&modification=0">Ajouter un nouvel inscrit</a><br><br> <a href="export.php">Exporter</a></p> </div> </div>
Si j'ai bien compris le 2/ n'est pas réglé?
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 14:50
7 août 2008 à 14:50
document.getElementById('diplome').innerHTML = di; => document.getElementById('diplomeDiv').innerHTML = di; Et <div id='diplome' style='display:inline'> => <div id='diplomeDiv' style='display:inline'>
Au premier essaie, il va ecrire le select, dans le "truc" qui porte l'id "diplome", donc pas de soucis, il met le select dans le div.
Mais après, quand tu changes, il veut écrire le select dans le "truc" qui porte l'id "diplome" mais le problème c'est que le div a cette id, mais le select mis précédemment aussi, donc il ne sait pas le quel choisir!
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
6 août 2008 à 12:05
6 août 2008 à 12:05
1- Essaie de mettre, au moment où tu remplis la liste, un utf8_encode() ou decode si cela ne marche pas
2- J'aimerais bien voir le code pour t'aider..
3- addslashes() en php
4- J'aimerais bien voir la page également ;o
2- J'aimerais bien voir le code pour t'aider..
3- addslashes() en php
4- J'aimerais bien voir la page également ;o
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
6 août 2008 à 13:16
6 août 2008 à 13:16
Alors le code de la page formulaire.php (je l'ai épuré de tout ce qui ne touchais pas au problème.)
Et le code de la page diplomeselect.php:
Je te fais un deuxième post pour le 4, histoire que ce soit claire.
Sinon, j'avais essayé encode, mais ça n'avais rien changé, je vais essayer decode pour voir.
Et sinon, j'avais pas du tout pensé a addslashes() ^^"
<? include 'connect.inc'; echo "<html> <head> <link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"style\" href=\"style.css\" /> <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); } else if(window.ActiveXObject){ try { xhr = new ActiveXObject(\"Msxml2.XMLHTTP\"); } catch (e) { xhr = new ActiveXObject(\"Microsoft.XMLHTTP\"); } } else { alert(\"Navigateur inapte\"); xhr = false; } return xhr; } //Fonction du bouton function change(){ var xhr = getXhr(); //Action défini par la réponse xhr.onreadystatechange = function(){ //alert(xhr.readyState); //Si tout OK if(xhr.readyState == 4 && xhr.status == 200){ //alert(xhr.responseText); di = xhr.responseText; document.getElementById('diplome').innerHTML = di; } } //Methode POST xhr.open(\"POST\",\"diplomeselect.php\",true); //à ne pas oublier xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); //ne pas oublier de poster les arguments (ici domaine/discipline/niveau (ddn)) code_ddn = document.getElementById('ddn').options[document.getElementById('ddn').selectedIndex].value; xhr.send(\"code_Ddn=\"+code_ddn); //alert(code_ddn); } </script> </head> <body> <div id=\"formulaire\"> <fieldset class=\"form\"> <legend>Saisie des étudiants pour les salons</legend> <form method=\"post\" action=\"#\" name=\"tata\" id=\"tata\"> <p><label for=\"souhait\">Choix des études suivis : (Domaine-Discipline-Niveau)</label><br> <select name='ddn' id='ddn' onchange='change()'> <optgroup label=\"Droit, Economie, Gestion\"> <optgroup label=\">Droit, Sciences Politiques\"> <option value=\"101L\">Licence</option> <option value=\"101M\">Master</option> <option value=\"101D\">Doctorat</option> </optgroup> <optgroup label=\">Sciences Economiques - Gestion (hors AES)\"> <option value=\"102L\">Licence</option> <option value=\"102M\">Master</option> <option value=\"102D\">Doctorat</option> </optgroup> <optgroup label=\">Administration Economique et Social (AES)\"> <option value=\"103L\">Licence</option> <option value=\"103M\">Master</option> <option value=\"103D\">Doctorat</option> </optgroup> </optgroup> <optgroup label=\"Arts, Lettres, Langues\"> <optgroup label=\">Lettres - Sciences du langage - Arts\"> <option value=\"204L\">Licence</option> <option value=\"204M\">Master</option> <option value=\"204D\">Doctorat</option> </optgroup> <optgroup label=\">Langues\"> <option value=\"205L\">Licence</option> <option value=\"205M\">Master</option> <option value=\"205D\">Doctorat</option> </optgroup> </optgroup> <optgroup label=\"Sciences, Technologie, Santé\"> <optgroup label=\">Sciences et Structures de la Matière (SSM)\"> <option value=\"307L\">Licence</option> <option value=\"307M\">Master</option> <option value=\"307D\">Doctorat</option> </optgroup> <optgroup label=\">Sciences et Technologie/ Sciences pour l'Ingénieur (SPI)\"> <option value=\"308L\">Licence</option> <option value=\"308M\">Master</option> <option value=\"308D\">Doctorat</option> </optgroup> <optgroup label=\">Sciences de la Nature et de la Vie (SNV)\"> <option value=\"309L\">Licence</option> <option value=\"309M\">Master</option> <option value=\"309D\">Doctorat</option> </optgroup> <optgroup label=\">Médecine\"> <option value=\"311L\">Licence</option> <option value=\"311M\">Master</option> <option value=\"311D\">Doctorat</option> </optgroup> <optgroup label=\">Odontologie\"> <option value=\"312L\">Licence</option> <option value=\"312M\">Master</option> <option value=\"312D\">Doctorat</option> </optgroup> <optgroup label=\">Pharmacie\"> <option value=\"313L\">Licence</option> <option value=\"313M\">Master</option> <option value=\"313D\">Doctorat</option> </optgroup> </optgroup> <optgroup label=\"Sciences Humaines et Sociales\"> <optgroup label=\">Sciences Humaines et Sociales (SHS)\"> <option value=\"406L\">Licence</option> <option value=\"406M\">Master</option> <option value=\"406D\">Doctorat</option> </optgroup> <optgroup label=\">Sciences et Techniques des Activités Physiques et Sportives (STAPS)\"> <option value=\"410L\">Licence</option> <option value=\"410M\">Master</option> <option value=\"410D\">Doctorat</option> </optgroup> </optgroup> </select> <br /> <div id='diplome' style='display:inline'> </div> </p> <input type=\"submit\" class=\"submit\" value=\"Envoyer\" /> </form> </fieldset> </div> </body> </html>"; ?>
Et le code de la page diplomeselect.php:
<?php echo "<select name='diplome' id='diplome'>"; if(isset($_REQUEST["code_Ddn"])){ mysql_connect("localhost","root",""); mysql_select_db("salon"); $res = mysql_query("SELECT code_diplome,libelle FROM diplome_info WHERE code_ddn='".$_REQUEST["code_Ddn"]."' ORDER BY code_ddn"); if (mysql_num_rows($res)>0) { echo "<option value='-1'>Choix du diplome</option>"; while($row = mysql_fetch_assoc($res)){ echo "<option value='".$row["code_diplome"]."'>".$row["libelle"]."</option>"; } } else { echo "<option value='-1'>Faîtes un choix.</option>"; } } echo "</select>"; ?>
Je te fais un deuxième post pour le 4, histoire que ce soit claire.
Sinon, j'avais essayé encode, mais ça n'avais rien changé, je vais essayer decode pour voir.
Et sinon, j'avais pas du tout pensé a addslashes() ^^"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
6 août 2008 à 13:20
6 août 2008 à 13:20
Voici la page du recapitulatif.
et le css qui est lié au positionnement...:
<? include 'connect.inc'; $affichage = "SELECT id_eleve, nom, prenom, date_naissance, email, universite, libelle FROM eleve NATURAL JOIN diplome_info ORDER BY id_eleve DESC"; $result_table = mysql_query($affichage); //echo $result_table; $nlignes = mysql_num_rows($result_table); //echo $nlignes; echo "<html><head> <link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"style\" href=\"style.css\" /> </head><body> <script language=\"javascript\"> code = prompt('Entrez le mot de passe. Vous avez 1 seul essais... Attention, respecter les majuscules et les minuscules','Entrer le mot de passe ici'); if (code != \"test\")//Mot de passe { location.href=\"formulaire.php\";//redirection en cas de mauvais mot de passe. } </script> <div class=\"menu\"> <p id=\"mtitle\">Menu</p> <p><a href=\"formulaire.php?id_eleve=0&modification=0\">Ajouter un nouvel inscrit</a><br><br> <a href=\"export.php\">Exporter</a></p> </div> <br> <div class=\"tableaureca\"> <fieldset id=\"recap\"> <legend>Tableau des inscrits aux salons</legend> <table border=\"1\" id=\"table\">\n <tr id=\"headt\"> <td>Nom</td> <td>Prenom</td> <td>Date de naissance</td> <td>Email</td> <td>Détail</td> <td>Modifier</td> <td>Supprimer</td> </tr>"; for($i=0;$i<$nlignes;$i++) { echo "<tr>"; $ligne = mysql_fetch_row($result_table); echo "<td>{$ligne[1]}</td> <td>{$ligne[2]}</td> <td>{$ligne[3]}</td> <td>{$ligne[4]}</td> <td><button type=\"button\" onclick=\"JavaScript: alert("; echo "'Nom : ".$ligne[1]." \\nPrénom : ".$ligne[2]." \\nDate de naissance : ".$ligne[3]." \\nEmail : ".$ligne[4]." \\nUniversité actuelle : ".$ligne[5]." \\nDiplôme souhaité : ".$ligne[6]."'"; echo ")\"><img src=\"little-loupe.png\" alt=\"Détail\" border=\"0\"/></button></td> <td><a href=\"formulaire.php?id_eleve=$ligne[0]&modification=1\" class=\"buttonform\"><img src=\"little-modifier.png\" alt=\"Modifier\" border=\"0\"/></a></td> <td><a href=\"formulaire.php?id_eleve=$ligne[0]&modification=2\" class=\"buttonform\"><img src=\"little-supprimer.png\" alt=\"Supprimer\" border=\"0\"/></a></td>"; echo "</tr>\n"; } echo "</table> </fieldset> </div> </body> </html>"; ?>
et le css qui est lié au positionnement...:
.menu { width: 180px; position: fixed; top: 54px; left: 19px; } #mtitle { font-size: large; text-decoration: underline; font-weight: bolder; } .tableaureca { width: 600px; position: absolute; top: 30px; left: 240px; } #recap { width: 590px; } #table { text-align: center; margin: 10px; font-weight: bold; color: #AD592C; font-size: 15px; }
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
6 août 2008 à 13:40
6 août 2008 à 13:40
Triple post tant qu'à faire...
Donc j'ai essayer avec decode, ça me mettais une erreur.
Mais j'ai un collègue qui m'as trouvé une solution avec encode et manip dans la DB, ce qui marche pour l'instant.
Et pour les addslashes, ça marche du tonnerre ^^
En espérant que tu puisse m'aider pour la suite.
Merci Tiller et merci d'avance au cas où ;)
Donc j'ai essayer avec decode, ça me mettais une erreur.
Mais j'ai un collègue qui m'as trouvé une solution avec encode et manip dans la DB, ce qui marche pour l'instant.
Et pour les addslashes, ça marche du tonnerre ^^
En espérant que tu puisse m'aider pour la suite.
Merci Tiller et merci d'avance au cas où ;)
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
6 août 2008 à 14:17
6 août 2008 à 14:17
Euuuh, y'aurais moyen de voir les pages en ligne (Pour le 4)? ^^''
Voir la page pour voir le bug au moins, j'arrive pas trop a imaginé.
Pour le 2:
Remplace tes $_REQUEST["code_Ddn"] par $_POST["code_Ddn"]
Voir la page pour voir le bug au moins, j'arrive pas trop a imaginé.
Pour le 2:
Remplace tes $_REQUEST["code_Ddn"] par $_POST["code_Ddn"]
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
6 août 2008 à 14:28
6 août 2008 à 14:28
Hum, le problème, c'est qu'elles sont pas en lignes. C'est une applacation PHP sur clé USB...
Je vais voir si je peux en faire une archive et te l'envoyer ce soir.
En attendant, je vais faire la modif (j'avais récupérer un script avec REQUEST, ça marchais, j'ai pas modifié ^^)
EDIT: pas de différence visible...
Je vais voir si je peux en faire une archive et te l'envoyer ce soir.
En attendant, je vais faire la modif (j'avais récupérer un script avec REQUEST, ça marchais, j'ai pas modifié ^^)
EDIT: pas de différence visible...
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
6 août 2008 à 14:31
6 août 2008 à 14:31
Ok merci, t'as cas me l'envoyer en PV
Quelques conseils:
Tu te fais super chier comme sa, tu dois faire gaffe aux accents etc.. le mieu:
Ensuite:
N'importe qui (ou presque) peut casser cette vérification... c'est vraiment sécurité 0
Quelques conseils:
<?php [...] echo "<html><head> [...] [...] </html>"; ?>
Tu te fais super chier comme sa, tu dois faire gaffe aux accents etc.. le mieu:
<?php [...] ?> <html><head> [...] [...] </html> <?php [...] ?>
Ensuite:
if (code != \"test\")//Mot de passe
N'importe qui (ou presque) peut casser cette vérification... c'est vraiment sécurité 0
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
6 août 2008 à 14:37
6 août 2008 à 14:37
Pour le premier, je sais que c'est super chiant, mais j'avais commencé comme ça, car c'était une petite application à la base (environ 300 lignes de code) mais mon chef me donnait le travail par petit bout, et j'ai utilisé l'application comme base.
Au final, j'ai pris l'habitude pour cette appli de faire attention au code, donc je continu comme ça.
Pour le mot de passe, pour ce qu'il sert c'est largement suffisant. Même sans, l'application serais livrable, c'est une petite sécutité pour faire "beau".
Au final, j'ai pris l'habitude pour cette appli de faire attention au code, donc je continu comme ça.
Pour le mot de passe, pour ce qu'il sert c'est largement suffisant. Même sans, l'application serais livrable, c'est une petite sécutité pour faire "beau".
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
7 août 2008 à 12:59
7 août 2008 à 12:59
Merci, ça marche.
Sinon, effectivement, le 2 n'est pas réglé.
J'ai essayé en modifiant divers morceaux de codes, mais rien n'a changé (sauf en pire).
Mais c'est pas grave si tu ne peux pas m'aider, j'ai encore jusqu'au 2 septembre pour trouver la solution ^^
Sinon, effectivement, le 2 n'est pas réglé.
J'ai essayé en modifiant divers morceaux de codes, mais rien n'a changé (sauf en pire).
Mais c'est pas grave si tu ne peux pas m'aider, j'ai encore jusqu'au 2 septembre pour trouver la solution ^^
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 13:06
7 août 2008 à 13:06
//alert(xhr.responseText);
Décommente cette ligne
Remplace ta page PHP par sa:
<?php foreach ($_POST as $k -> $v) { echo $k.' => '.$v."\r\n"; } ?>
Sa alert quoi sur la page? Tu la vois ta variable?
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
7 août 2008 à 13:22
7 août 2008 à 13:22
Voila l'alerte
Sur la page, c'est exactement la même chose que l'alerte...
<br /> <b>Fatal error</b>: Cannot access empty property in <b>E:\_web.zmwsc\Salon\diplomeselect.php</b> on line <b>2</b><br />
Sur la page, c'est exactement la même chose que l'alerte...
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 13:56
7 août 2008 à 13:56
ok, le probleme vient donc de ton AJAX qui n'envoi pas la variable.
Je me demande si ce n'est pas:
Je me demande si ce n'est pas:
xhr.send(\"?code_Ddn=\"+code_ddn);
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
7 août 2008 à 14:00
7 août 2008 à 14:00
Pourtant, lorsque je fais un choix, une première fois, ma deuxième liste s'affiche correctement.
Mais si je modifie le choix de la première liste, c'est la où ma deuxième liste foire. Donc il doit bien y avoir un envoi de variable.
J'ai bien supposé que ma liste envoyai la variable une première fois, mais la deuxième, elle renvoyais une erreur, mais j'ai pas trouvé comment cela était possible... Et encore moins comment résoudre le problème.
Mais si je modifie le choix de la première liste, c'est la où ma deuxième liste foire. Donc il doit bien y avoir un envoi de variable.
J'ai bien supposé que ma liste envoyai la variable une première fois, mais la deuxième, elle renvoyais une erreur, mais j'ai pas trouvé comment cela était possible... Et encore moins comment résoudre le problème.
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 14:16
7 août 2008 à 14:16
Huuum, c'est bizarre, chez moi le code marche bien...
http://tillersama.hd.free.fr/CCM/azertyuiop/f.php
http://tillersama.hd.free.fr/CCM/azertyuiop/f.php
Tiller
Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
211
7 août 2008 à 14:18
7 août 2008 à 14:18
Aaaaaaaahhhh mon dieu qu'on est con.
J'aurais du le voir dessuite -_-
Tu innerHTML, dans le div qui a pour id "diplome" OR, le select que tu récupères en ajax, son id, bah c'est aussi "diplome"..
J'aurais du le voir dessuite -_-
Tu innerHTML, dans le div qui a pour id "diplome" OR, le select que tu récupères en ajax, son id, bah c'est aussi "diplome"..
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
7 août 2008 à 14:37
7 août 2008 à 14:37
Euh, oui, la je dois être très con ^^,
car moi je vois pas l'erreur, ou du moins, quoi changer :(
car moi je vois pas l'erreur, ou du moins, quoi changer :(
CrowCrow
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
7 août 2008 à 14:55
7 août 2008 à 14:55
God save The Tiller
ça marche impec', vraiment, merci ^^
Tu es vraiment d'une grande aide ;)
Bon, bha maintenant je me retrouve au chômage technique, jusqu'au retour de mon chef :D
ça marche impec', vraiment, merci ^^
Tu es vraiment d'une grande aide ;)
Bon, bha maintenant je me retrouve au chômage technique, jusqu'au retour de mon chef :D