Script ajax charger liste region
Fermé
outhman83
Messages postés
9
Date d'inscription
dimanche 2 septembre 2007
Statut
Membre
Dernière intervention
21 novembre 2008
-
7 mai 2008 à 12:18
outhman83 Messages postés 9 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 21 novembre 2008 - 7 mai 2008 à 15:05
outhman83 Messages postés 9 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 21 novembre 2008 - 7 mai 2008 à 15:05
Bonjour,
J'ai un probleme avec un script en ajax qui charge la liste des regions dans une liste déroulante à partir de la liste des pays, et apres il charge la liste des villes à partir des regions. comme dans la page d'acceuil de meetic.
www.meetic.fr/ exemple pays maroc.
probleme c'est que quand je ne recupere pas les resultat de la region et la ville quand je valide le formulaire.
ce probleme ce pose seulement dans firefox. mais pour IE ça marche bien.
si qq a une idée je serais trés reconnaissant. ou bien un script similaire comme celui de meetic.
Merci d'avance.
J'ai un probleme avec un script en ajax qui charge la liste des regions dans une liste déroulante à partir de la liste des pays, et apres il charge la liste des villes à partir des regions. comme dans la page d'acceuil de meetic.
www.meetic.fr/ exemple pays maroc.
probleme c'est que quand je ne recupere pas les resultat de la region et la ville quand je valide le formulaire.
ce probleme ce pose seulement dans firefox. mais pour IE ça marche bien.
si qq a une idée je serais trés reconnaissant. ou bien un script similaire comme celui de meetic.
Merci d'avance.
A voir également:
- Script ajax charger liste region
- Liste déroulante excel - Guide
- Script vidéo youtube - Guide
- Liste déroulante en cascade - Guide
- Liste site streaming illégal - Accueil - Services en ligne
- Liste code ascii - Guide
2 réponses
burnedsyn
Messages postés
170
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
21 février 2009
16
7 mai 2008 à 12:27
7 mai 2008 à 12:27
Ta description du probleme est très floue peux tu te relires ;)
outhman83
Messages postés
9
Date d'inscription
dimanche 2 septembre 2007
Statut
Membre
Dernière intervention
21 novembre 2008
7 mai 2008 à 15:05
7 mai 2008 à 15:05
en fait le code ne contient pas la declaration de xmlhttprequest: il utilise les objet yui
c'est un amis qui m'as donnée ce code et je l'ai adapté. mais il marche dans IE et pas FireFox
à titre d'info j'utlise zend framework:peut etre c'est lui la cause
var popup = null;
var tabView = new YAHOO.widget.TabView("rtab");
YAHOO.util.Event.onDOMReady(function () {
popup = new YAHOO.widget.Panel("popup", {
width: "500px",
left: "300px",
top: "150",
close: true,
draggable: true,
constraintoviewport:true,
modal: true,
visible: false
});
popup.render();
});
function initPopup(title, url) {
if (!popup) {
popup.setBody("Loading, please wait...");
popup.show();
}
// Define the callback object for Connection Manager that will set the body of our content area when the content has loaded
var callback = {
success : function(o) {
popup.setHeader(title);
popup.setBody(o.responseText);
popup.show();
},
failure : function(o) {
popup.setHeader(title);
popup.setBody("<h2>SORRY, CONNECTION FAILED!</h2>");
popup.show();
}
}
// Connect to our data source and load the data
var conn = YAHOO.util.Connect.asyncRequest("GET", url, callback);
}
function loadContent(objId, url){
var div = document.getElementById(objId);
var handleSuccess = function(o){
if(o.responseText !== undefined){
div.innerHTML = o.responseText;
}
};
var handleFailure = function(o){
if(o.responseText !== undefined){
div.innerHTML = "<ul><li>Erreur</li>";
div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
div.innerHTML += "<li>Status code message: " + o.statusText + "</li></ul>";
}
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
var RegionLoad = true;
var VilleLoad = true;
var firstLoad = true;
var RegionLoad1 = false;
var VilleLoad1 = false;
function loadRegion1(path, value, tableId) {
var tbl = document.getElementById(tableId);
var tb2 = document.getElementById(tableId);
if (value=='MAR' || value=='DZA' || value=='TUN' || value=='FRA' || value=='CAN') {
var url = path + '/listerRegion/codepays/' + value;
// Inserer ou remplacer une ligne dans la table d'ID (tableId)
var handleSuccess = function(o){
if(o.responseText !== undefined){
// Recuperer les donnees reponses, qui sont separes par un '|'
var cells = o.responseText.split('|');
// Si 1èr chargement de la page
if (firstLoad || VilleLoad) {
// supprimer la ligne region et ramplacer la ligne ville par une ligne region
tb2.deleteRow(1);
// Remplacer la 2eme ligne par une ligne region avec son contenu
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
firstLoad = false;
RegionLoad = true;
VilleLoad = false;
}
// si c'est pas le 1er chargement de la page
else {
// si on a pas deja chargé une ville
if(RegionLoad)
{
//on supprime la 3eme ligne(ville) et on remplace la region par un nouveau contenu
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
RegionLoad=true;
VilleLoad= false;
}
else if (!RegionLoad && !VilleLoad)
{
// Inserer un ligne vide (<tr></tr>)
tb2.insertRow(1);
// Inserer 2 cellules vides (<td></td> et <td></td>)
tb2.rows[1].insertCell(0);
tb2.rows[1].insertCell(1);
// Remplir les contenus des cellules
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
RegionLoad=true;
VilleLoad = false;
}
}
}
};
var handleFailure = function(o){
// Rien à faire en cas d'erreur !
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
else {
if (firstLoad || VilleLoad) {
tb2.deleteRow(1);
tb2.deleteRow(1);
firstLoad=false;
RegionLoad=false;
VilleLoad=false;
}
else{
if(RegionLoad)
{
tb2.deleteRow(1);
VilleLoad = false;
RegionLoad=false;
}
}
}
}
function loadVille1(path, value, tableId) {
var url = path + '/listerVille/id/' + value;
// Inserer une nouvelle ligne dans la table d'ID (tableId) à la 4ème position
var tbl = document.getElementById('table');
var handleSuccess = function(o){
if(o.responseText !== undefined){
// Recupere les donnees reponses, qui sont separes par un '|'
var cells = o.responseText.split('|');
// Si 1ère Selection, inserer une nouvelle ligne (<tr></tr>) dans la table
// a la position indiquee.
if (!firstLoad) {
if(!VilleLoad)
{
// Inserer un ligne vide (<tr></tr>)
tbl.insertRow(2);
// Inserer 2 cellules vides (<td></td> et <td></td>)
tbl.rows[2].insertCell(0);
tbl.rows[2].insertCell(1);
// Remplir les contenus des cellules
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
VilleLoad = true;
}
else
{
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
}
}
// Sinon, remplacer juste les contenus des 2 cellules (<td></td> et <td></td>)
else {
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
}
}
};
var handleFailure = function(o){
// Rien à faire en cas d'erreur !
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
c'est un amis qui m'as donnée ce code et je l'ai adapté. mais il marche dans IE et pas FireFox
à titre d'info j'utlise zend framework:peut etre c'est lui la cause
var popup = null;
var tabView = new YAHOO.widget.TabView("rtab");
YAHOO.util.Event.onDOMReady(function () {
popup = new YAHOO.widget.Panel("popup", {
width: "500px",
left: "300px",
top: "150",
close: true,
draggable: true,
constraintoviewport:true,
modal: true,
visible: false
});
popup.render();
});
function initPopup(title, url) {
if (!popup) {
popup.setBody("Loading, please wait...");
popup.show();
}
// Define the callback object for Connection Manager that will set the body of our content area when the content has loaded
var callback = {
success : function(o) {
popup.setHeader(title);
popup.setBody(o.responseText);
popup.show();
},
failure : function(o) {
popup.setHeader(title);
popup.setBody("<h2>SORRY, CONNECTION FAILED!</h2>");
popup.show();
}
}
// Connect to our data source and load the data
var conn = YAHOO.util.Connect.asyncRequest("GET", url, callback);
}
function loadContent(objId, url){
var div = document.getElementById(objId);
var handleSuccess = function(o){
if(o.responseText !== undefined){
div.innerHTML = o.responseText;
}
};
var handleFailure = function(o){
if(o.responseText !== undefined){
div.innerHTML = "<ul><li>Erreur</li>";
div.innerHTML += "<li>HTTP status: " + o.status + "</li>";
div.innerHTML += "<li>Status code message: " + o.statusText + "</li></ul>";
}
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
var RegionLoad = true;
var VilleLoad = true;
var firstLoad = true;
var RegionLoad1 = false;
var VilleLoad1 = false;
function loadRegion1(path, value, tableId) {
var tbl = document.getElementById(tableId);
var tb2 = document.getElementById(tableId);
if (value=='MAR' || value=='DZA' || value=='TUN' || value=='FRA' || value=='CAN') {
var url = path + '/listerRegion/codepays/' + value;
// Inserer ou remplacer une ligne dans la table d'ID (tableId)
var handleSuccess = function(o){
if(o.responseText !== undefined){
// Recuperer les donnees reponses, qui sont separes par un '|'
var cells = o.responseText.split('|');
// Si 1èr chargement de la page
if (firstLoad || VilleLoad) {
// supprimer la ligne region et ramplacer la ligne ville par une ligne region
tb2.deleteRow(1);
// Remplacer la 2eme ligne par une ligne region avec son contenu
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
firstLoad = false;
RegionLoad = true;
VilleLoad = false;
}
// si c'est pas le 1er chargement de la page
else {
// si on a pas deja chargé une ville
if(RegionLoad)
{
//on supprime la 3eme ligne(ville) et on remplace la region par un nouveau contenu
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
RegionLoad=true;
VilleLoad= false;
}
else if (!RegionLoad && !VilleLoad)
{
// Inserer un ligne vide (<tr></tr>)
tb2.insertRow(1);
// Inserer 2 cellules vides (<td></td> et <td></td>)
tb2.rows[1].insertCell(0);
tb2.rows[1].insertCell(1);
// Remplir les contenus des cellules
tb2.rows[1].cells[0].innerHTML = cells[0];
tb2.rows[1].cells[1].innerHTML = cells[1];
RegionLoad=true;
VilleLoad = false;
}
}
}
};
var handleFailure = function(o){
// Rien à faire en cas d'erreur !
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
else {
if (firstLoad || VilleLoad) {
tb2.deleteRow(1);
tb2.deleteRow(1);
firstLoad=false;
RegionLoad=false;
VilleLoad=false;
}
else{
if(RegionLoad)
{
tb2.deleteRow(1);
VilleLoad = false;
RegionLoad=false;
}
}
}
}
function loadVille1(path, value, tableId) {
var url = path + '/listerVille/id/' + value;
// Inserer une nouvelle ligne dans la table d'ID (tableId) à la 4ème position
var tbl = document.getElementById('table');
var handleSuccess = function(o){
if(o.responseText !== undefined){
// Recupere les donnees reponses, qui sont separes par un '|'
var cells = o.responseText.split('|');
// Si 1ère Selection, inserer une nouvelle ligne (<tr></tr>) dans la table
// a la position indiquee.
if (!firstLoad) {
if(!VilleLoad)
{
// Inserer un ligne vide (<tr></tr>)
tbl.insertRow(2);
// Inserer 2 cellules vides (<td></td> et <td></td>)
tbl.rows[2].insertCell(0);
tbl.rows[2].insertCell(1);
// Remplir les contenus des cellules
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
VilleLoad = true;
}
else
{
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
}
}
// Sinon, remplacer juste les contenus des 2 cellules (<td></td> et <td></td>)
else {
tbl.rows[2].cells[0].innerHTML = cells[0];
tbl.rows[2].cells[1].innerHTML = cells[1];
}
}
};
var handleFailure = function(o){
// Rien à faire en cas d'erreur !
};
var callback =
{
success:handleSuccess,
failure:handleFailure,
argument: {}
};
var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);
}
7 mai 2008 à 14:13
Merci burnedsyn de m'avoir repondre.
pour ne pas parler bcp, je travail sur un site de chat comme meetic.
et je veux avoir un script comme celui qui est dans la page d'inscription de meetic. qui permet de charger à partir d'une base de donnée une liste deroulante des regions à partir d'un choix du pays.et apres il charge une liste deroulante de ville à partir du choix du region.
tu px voir un exemple sur la pages d'acceuil de www.meetic.fr , tu fais le choix du pays (maroc ou algérie).
Merci burnedsyn;
7 mai 2008 à 14:41