[jQuery] IE6 and ajax method in POST mode
Hi everybody,
this is my question :
i have this jQuery code :
========================
$.ajax({
type: 'POST', // Méthode post
url: './Includes/chargerModeles.php', // Fichier appelé
data: {idMarque: unIdMarque}, // Paramètres du post
dataType: ($.browser.msie) ? "text" : "xml",
error: function(requete,idErreur)
{
alert('Erreur de chargement AJAX. Code d\'erreur :'+idErreur);
$('#modele').append('<option value="-1">Erreur de chargement</
option>');
$
("#marque").parents("form").find("input[@type=submit]").attr("disabled",true);
$("#marque").parents("form").unblock();
},
success: function(data) // Fonction appelée une fois la requête
terminée
{
var modeles;
if (typeof data == "string")
{
modeles = new ActiveXObject("Microsoft.XMLDOM");
modeles.async = false;
modeles.loadXML(data);
}
else
{
modeles = data;
}
if ( $(modeles).find("reponse").find("modele").length != 0 )
{ // Il y a au moins un modèle
$('#modele').append('<option value="-1">Tous</option>');
$(modeles).find("reponse").find("modele").each(function()
{
$('#modele').append('<option value="'+$(this).find("id").text()
+'">'+$(this).find("nom").text()+'</option>');
});
$
("#marque").parents("form").find("input[@type=submit]").attr("disabled",false);
}
else
{ // On a trouvé aucun modèle
$('#modele').append('<option value="-1">Aucun modele trouv\351</
option>');
$
("#marque").parents("form").find("input[@type=submit]").attr("disabled",true);
}
$("#marque").parents("form").unblock();
}
});
}
else
{ // L'utilisateur a sélectionné l'option Toutes dans les marques
$('#modele').append('<option value="-1">Tous</option>');
$
("#marque").parents("form").find("input[@type=submit]").attr("disabled",false);
}
================================
and this the PHP code (a part) :
<?php
/////////////////////////////////////// Include des fichiers
nécessaires
require_once('Config.php');
require_once('../'.REP_CLASSES.'/Voiture.php'); // Contient la
méthode ListerModeles
header('Content-type: xml; charset='.CHARSET);
/////////////////////////////////////// Initialisation de l'accès à
la base de données
$baseDonnees = new
PDO(BDD_CONNEXION,BDD_UTILISATEUR,BDD_MOT_DE_PASSE);
////////////////////////////////////// Récupération des modèles
$modeles = Voiture::ListerModeles($baseDonnees,
$_REQUEST['idMarque']);
///////////////////////////////////// Formatage du résultat
$retour = '<reponse>';
if (count($modeles)!=0)
{
foreach($modeles as $unModele)
{
$retour .= '<modele>';
$retour .= '<id>'.$unModele['IdModele'].'</id>';
$retour .= '<nom>'.$unModele['NomModele'].'</nom>';
$retour .= '</modele>';
}
}
$retour .= '</reponse>';
$baseDonnees = null;
echo $retour;
?>
With FireFow i have no problem,
With IE7 the result is correct
But with IE6 this is not working. I made some test and finally
understand the error that is the data is not sent to my PHP page (i
have an error like : index idMarque is not found).
What do I have to do to this code be right under IE6 ?
The only solution i've found is to do like this (but i think there is
a better way) :
$.ajax({
type: 'POST', // Méthode post
url: './Includes/chargerModeles.php?idMarque='+y
unIdMarque, // Fichier appelé
//data: {idMarque: unIdMarque}, // Paramètres du post
dataType: ($.browser.msie) ? "text" : "xml",
error: function(requete,idErreur)
Thank you for reading ;)