le lien ne passe plus apparement
donc je décris
j'ai 6 fichiers.
class.mysql.php
Code PHP :
_config = parse_ini_file('../config/config.ini', true);
//Affecte les variables selon l'environnment (production ou préproduction)
$this->_host = $this->_config['mysql']['host'];
$this->_user = $this->_config['mysql']['user'];
$this->_password = $this->_config['mysql']['password'];
$this->_database = $this->_config['mysql']['database'];
//connexion au serveur avec PDO
try {
$this->_dbh = new PDO('mysql:host='.$this->_host.';dbname='.$this->_database,
$this->_user, $this->_password);
} catch (PDOException $e) {
echo 'Erreur de connexion sur le serveur de préproduction: '.$e->getMessage().' ';
}
}
/**
* Permet de préparer un requête SQL
*
* @param string $req
* @return stdClass
*/
public function prepare($req)
{
$sth = $this->_dbh->prepare($req);
return $sth;
}
}
?>
class.france.php
Code PHP :
prepare('SELECT region_id, region_name
FROM region');
$prepare->execute();
$regions = $prepare->fetchAll();
return $regions;
}
/**
* Méthode qui retourne les info d'une région selon son id
*
* @param int $id
* @return array
*/
public function getRegionById($id)
{
$prepare = $this->prepare('SELECT region_id, region_name
FROM region
WHERE region_id = :id');
$prepare->execute(array(':id' => $id));
$region = $prepare->fetchAll();
return $region;
}
/**
* Méthode qui retourne la liste des départements d'une région
*
* @param int $id
* @return array
*/
public function getDptByRegion($id)
{
$prepare = $this->prepare("SELECT dpt_id, dpt_name
FROM departement
WHERE region_id = :region_id");
$prepare->execute(array(':region_id' => $id));
$dpt = $prepare->fetchAll();
return $dpt;
}
/**
* Méthode qui retounre la liste des ville d'un département
*
* @param int $id
* @return array
*/
public function getVilleByDpt($id)
{
$prepare = $this->prepare("SELECT ville_id, ville_name, ville_cp
FROM ville
WHERE dpt_id = ?");
$prepare->execute(array($id));
$villes = $prepare->fetchAll();
return $villes;
}
}
?>
listeLiees.js
Code Javascript :
// JavaScript Document
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
//Retourne la liste des départements d'une région
function getDpt(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 & xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('champsDpt').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax.dpt.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById('region');
idRegion = sel.options[sel.selectedIndex].value;
xhr.send("idRegion="+idRegion);
}
//Retourne la liste des villes d'un département
function getVille(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 & xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('champsVille').innerHTML = leselect;
}
}
xhr.open("POST","ajax.ville.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById('dpt');
idDpt = sel.options[sel.selectedIndex].value;
xhr.send("idDpt="+idDpt);
}
ajax.dpt.php
Code PHP :
Département: ";
$listeDpt .= '
<select id="dpt" name="dpt"> <option value="'.$dpt[$i]['dpt_id'].'">'.$dpt[$i]['dpt_name'].'</option> </select> ";
echo mb_convert_encoding($listeDpt, "UTF-8", "ISO-8859-15");
?>
ajax.ville.php
Code PHP :
Ville: ";
$listeVilles .= '
<select name="ville"> <option value="'.$villes[$i]['ville_id'].'">'.$villes[$i]['ville_name'].'('.$villes[$i]['ville_cp'].')</option> </select> ";
echo mb_convert_encoding($listeVilles, "UTF-8", "ISO-8859-15");
?>
le fichier config.ini