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);
}