| 4 Alain42, le 17 jui 2007 à 14:55:12Dans un moment de bonté je te mets le code de la solution 2(trois fichiers):
config.php
<?php
$host="localhost";
$Login="xxxxxx";
$Pass="xxxxxxx";
$DB="test";
$Table="etudiants";
$champ_niv="niveau";
$champ_etud="etudiants";
?>
listes_liees.php
<html>
<head>
<!-- Script de listes deroulantes liees avec appel par AJAX, (evite le rechargement de la page) -->
<script language="Javascript"type="text/JavaScript">
// Requette AJAX
function makeRequest(url,id_niveau,id_ecrire){
var http_request = false;
//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
// lancement de la requete
http_request.open('POST', url, true);
//changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'....
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_niveau);
data="val_sel="+obj.value;
http_request.send(data);
}
function traitementReponse(http_request,id_ecrire) {
var affich="";
if (http_request.readyState == 4) {
if (http_request.status == 200) {
// cas avec reponse de PHP en mode texte:
//chargement des elements reçus dans la liste
var affich_list=http_request.responseText;
obj = document.getElementById(id_ecrire);
obj.innerHTML = affich_list;
}
else {
alert('Un problème est survenu avec la requête.');
}
}
}
</script>
</head>
<?php
include ("config.php");
// Connexion a la base de donnees
$AccesBase = mysql_connect($host,$Login,$Pass);
mysql_select_db($DB,$AccesBase);
$QuestionBase = "SELECT DISTINCT $champ_niv FROM $Table ORDER BY $champ_niv ASC " ;
$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
$nombre_enr=mysql_num_rows($result_recherche);
?>
<body>
<form name="test1" method="post" action="liste_liees.php" >
<div id="id_list1">Niveau:<br>
<select name="niv1" id="id_niv1" onChange="makeRequest('rep_PhpAjax.php','id_niv1','id_list2')">
<option>-- Choisissez --</option>
<?php
while ($row=mysql_fetch_assoc($result_recherche)){
?>
<option value="<?php echo $row[$champ_niv]?>"><?php echo $row[$champ_niv]?></option>
<?php
}
?>
</select>
<br><br>
</div>
<div id="id_list2">
<!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->
</div>
</form>
</body>
</html>
RepPhpAjax.php
<?php
// script PHP interrogation Base de donnees pour reponse a la requette AJAX
include ("config.php");
// Connexion a la base de donnees
$AccesBase = mysql_connect($host,$Login,$Pass);
mysql_select_db($DB,$AccesBase);
$QuestionBase = "SELECT * FROM $Table WHERE ".$champ_niv."='".$_POST[val_sel]."' ORDER BY ".$champ_etud." ASC " ;
$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
// construction de la liste deroulante
$aff=="";
$aff=$aff."Etudiants:<br>
<select name='niv1' id='cont_list2' >
<option>-- Choisissez --</option>";
while ($row=mysql_fetch_assoc($result_recherche)){
$aff.="<option value=\"$row[$champ_etud]\">$row[$champ_etud]</option>";
}
$aff=$aff."</select><br><br>";
// envoi reponse Php a Ajax
echo $aff;
?>
Répondre à Alain42 | 6 2mop, le 27 aoû 2008 à 11:27:40Tout dabord merci pour le code !
j'ai juste un problème c'est que je me prend le popup "Un problème est survenu avec la requête."
j'ai pourtant recréer la base et copier le code tel quel
peut être que cela vient de ma base :
pouriez vous m'aider
par avance merci !!
CREATE TABLE `etudiants` (
`niveau` varchar(30) NOT NULL default '',
`etudiants` varchar(30) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `etudiants`
--
INSERT INTO `etudiants` VALUES ('20', 'Droit international public app');
INSERT INTO `etudiants` VALUES ('19', 'Droit international public app');
INSERT INTO `etudiants` VALUES ('18', 'UNITE 4 - ENSEIGNEMENT DE DECO');
INSERT INTO `etudiants` VALUES ('17', 'UNITE 3 - ENSEIGNEMENT DE METH');
INSERT INTO `etudiants` VALUES ('16', 'UNITE 2 - LANGAGE ET SOCIETE 2');
INSERT INTO `etudiants` VALUES ('15', 'UNITE 1 - ETUDE THEORIQUE DU L');
INSERT INTO `etudiants` VALUES ('14', '6eme SEMESTRE');
INSERT INTO `etudiants` VALUES ('13', 'L''anglais pour la linguistique');
INSERT INTO `etudiants` VALUES ('12', 'Acquisition des langues en con');
INSERT INTO `etudiants` VALUES ('11', 'UNITE 4 - ENSEIGNEMENT DE DECO');
INSERT INTO `etudiants` VALUES ('8', 'UNITE 3 - ENSEIGNEMENT DE METH');
INSERT INTO `etudiants` VALUES ('9', 'UNITE 2 - LANGAGE & SOCIETE 1');
INSERT INTO `etudiants` VALUES ('4', 'Pratique de l''ecriture');
INSERT INTO `etudiants` VALUES ('2', 'Syntaxe');
INSERT INTO `etudiants` VALUES ('3', 'Informatique pour la linguisti');
INSERT INTO `etudiants` VALUES ('1', 'Phonetique / phonologie');
INSERT INTO `etudiants` VALUES ('5', 'Droit international public app');
INSERT INTO `etudiants` VALUES ('8', 'UNITE 1-ETUDE THEORIQUE DU LAN');
INSERT INTO `etudiants` VALUES ('7', '5eme SEMESTRE');
INSERT INTO `etudiants` VALUES ('6', 'Questions de bilinguisme');
INSERT INTO `etudiants` VALUES ('5', 'Litteratures & francophonie');
INSERT INTO `etudiants` VALUES ('21', 'Droit international public app');
INSERT INTO `etudiants` VALUES ('22', 'Droit de l''urbanisme');
INSERT INTO `etudiants` VALUES ('23', 'CHOIX COURS SANS TD');
INSERT INTO `etudiants` VALUES ('24', 'SEMESTRE 1');
INSERT INTO `etudiants` VALUES ('25', 'COURS AVEC TD');
INSERT INTO `etudiants` VALUES ('26', 'UNITE 1 Enseignements Fondame'); Répondre à 2mop | 8 saar_pape, le 25 fév 2009 à 11:45:45J'ai le meme probleme que 2mop; j'ai essayé d'adapter le code à mon probleme mais j'y arrive pas; j'ai donc pris l'exemple tel qu'il est mais je me trouve avec alert('Un probleme est survenu avec la requete'). Merci; de bien vouloir m'aider Répondre à saar_pape |
| 9 kahina2104, le 6 avr 2009 à 11:53:30Bonjour a tous
dans le cadre de mon projet j'ai un formulaire, le probleme est simple
heuu enfin il n'est pas simple étant donner ke je n'arrive pas...:-)
moi le seul souci c ke j'ai créee une table dans ma BBD(Mysql) et je rajoute des champs dynamique du coup pour récuperer la valeur de mes champs et les inserer j'ai pas de nom préci a donner pour la requette $requete = "INSERT INTO `etudiant` (uid, nom, le les champs dy namique)VALUES ('$uid','$nom', 'les champs dynamique')"; étant donner k'il est variable
PS: mes champs sont inserer des checkbox dynamique
franchement si vous arrivé a me dépanner , alors la respect . paske la je ne sai plus koi faire je suis coincé et tous les garçon de la classe ont éssayé rien a faire....bref
merci bcp d'avance Répondre à kahina2104 | 10 2mop, le 8 avr 2009 à 05:29:09Bjr,
Il faudrait que tu sois plus précis : genre donner ton formulaire...
Si non vu ton pb je pense qu'il faut que tu passes par un truc genre DO WHILE qui recupère tes champs, genre dans un tableau et après tu ecrire (printf, echo ...) ta requète
voilà une piste
2mop Répondre à 2mop |
|
|
|