Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2008, 11h37   #1
Membre éprouvé
 
Avatar de babastutz
 
Inscription : décembre 2005
Messages : 943
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 943
Points : 423
Points : 423
Par défaut Problème Ajax sous IE et safari

Bonjour,

Pour commencer, je suis un méga débutant en ajax !!

Je me suis très inspiré de ce très bon tuto sur les élément XMLHttpRequest. J'ai donc pondu ce code qui me permet de faire appel à un script php pour tester la connexion à une base de données :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
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
    }
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function testBdd()
    {
        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){
                alert(xhr.responseText);
            }
        }
 
        xhr.open("POST","config/t_edi_bdd.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        var sgbd = document.form_bdd.new_sgbd.value;
        var base = document.form_bdd.new_base.value;
        var login = document.form_bdd.new_login.value;
        var password = document.form_bdd.new_password.value;
        var hote = document.form_bdd.new_hote.value;
 
        var data = "new_sgbd="+sgbd+"&new_base="+base+"&new_login="+login+"&new_password="+password+"&new_hote="+hote+"&test=1";
 
        xhr.send(data);
 
    }
Ce code fonctionne très bien avec firefox mais pas du tout avec IE ou safari... Je ne sais plus quoi faire
__________________
Une légende, c’est un vieil homme avec une canne et que tout le monde connaît pour ce qu’il faisait. [Miles Davis]
babastutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 16h48   #2
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 316
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 316
Points : 15 513
Points : 15 513
Bonjour,
suivant le html associé, cette syntaxe
Code :
var sgbd = document.form_bdd.new_sgbd.value;
peut poser problème.
Utilise plutôt
Code :
var sgbd = document.forms['form_bdd'].elements['new_sgbd'].value;
L'idéal étant d'utiliser les ID (d'autant qu'Ajax n'utilise en rien la logique des formulaires).

Sans garantie que tout vienne de là (mais je ne vois rien d'autre de "suspect" dans ton code) ...

Si ce n'est pas le cas, le HTML serait le bienvenu

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 08h29   #3
Membre éprouvé
 
Avatar de babastutz
 
Inscription : décembre 2005
Messages : 943
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 943
Points : 423
Points : 423
Merci de ta réponse.

J'ai changé mon javascript comme tu me l'as conseillé mais toujours aucun résultat.

C'est pourquoi voici mon code html :

Code :
1
2
 
<input type=\"button\" onclick=\"testBdd();\" value=\"Tester la connexion\" />
et voici le code de ma page php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
$form_new_base         = $_POST['new_base'];
    $form_new_prefixe     = $_POST['new_prefixe']."_";
    $form_new_sgbd         = $_POST['new_sgbd'];
    $form_new_login     = $_POST['new_login'];
    $form_new_password     = $_POST['new_password'];
    $form_new_hote         = $_POST['new_hote'];
    $form_test            = $_POST['test'];
    $form_export        = $_POST['export'];
    $form_import        = $_POST['restore'];
 
 
    if ($form_test)
    {
        $cnx_test = new BD($form_new_sgbd, $form_new_login, $form_new_password, $form_new_base, $form_new_hote);
        if ($cnx_test->getMsgErr())
            echo "Impossible de se connecter";
        else
            echo "Connexion ok";
        exit;
    }
Je ne comprends pas ce qui ne fonctionne pas...
__________________
Une légende, c’est un vieil homme avec une canne et que tout le monde connaît pour ce qu’il faisait. [Miles Davis]
babastutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 09h22   #4
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 316
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 316
Points : 15 513
Points : 15 513
Citation:
Envoyé par babastutz Voir le message
toujours aucun résultat.
Quelques étapes pour tenter de situer le problème sous IE :
Sûr qu'il n'y a pas d'erreur dans le nav ?
Si tu fais un alert(data) avant l'envoi, les paramètres sont bons ?
Si tu les traces sur le serveur : sont-ils-bien récupérés ?
Si tu tapes l'url appelée (fichier php + paramètres envoyés dans le send) comme une url classique dans la barre d'adresse de IE, la réponse est bonne ?

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web