0 votes

javascript n'est pas appelé

J'utilise le code HTML suivant

<html>
    <head>
        <Title>EBAY Search</title>
    </head>
    <script language="JavaScript" src="ajaxlib.js"></script>
    <body>
        Click here <a href="#" OnClick="GetEmployee()">link</a> to show content
        <div id="Result"><The result will be fetched here></div>
    </body>
</html>

Avec ce Javascript

var xmlHttp

function GetEmployee()

{

xmlHttp=GetXmlHttpObject()

if(xmlHttp==null)

{

alert("Your browser is not supported")

}

var url="get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid="+Math.random()

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function FetchComplete()

{

if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById("Result").innerHTML=xmlHttp.responseText

}

if(xmlHttp.readyState==1 || xmlHttp.readyState=="loading")

{

document.getElementById("Result").innerHTML="loading"

}

}

function GetXmlHttpObject()

{

var xmlHttp=null;

try

{

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

try

{

xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");

}

}

return xmlHttp;

}

Cependant, il n'est pas appelé. get_employee.php fonctionne correctement lorsque je l'appelle tout seul, ce n'est donc pas le problème. Y a-t-il quelque chose d'anormal dans mon code qui l'empêcherait d'être appelé ? Je ne peux pas tester avec des extensions firefox, je n'y ai pas accès, donc ne donnez pas cela comme réponse.

edit : le problème est que le javascript n'est pas appelé du tout. J'ai corrigé le problème du point d'interrogation, mais même un simple javascript avec une alerte n'est pas appelé.

1voto

dylanfm Points 4668
var url="get_employee.php?"

Nécessite le " ?".

Il est préférable d'utiliser ce balisage pour inclure vos scripts :

<script type="text/javascript" src="ajaxlib.js"></script>

1voto

Aaron Palmer Points 4256

Modifier ceci

var url="get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid="+Math.random()

à cela :

var url="get_employee.php?cmd=GetEmployee&sid="+Math.random();

Il manquait le " ?" et il n'y a pas besoin de toute cette concaténation (mais je suppose que c'est juste un style personnel).

De plus, si vous avez effectivement le "<Le résultat sera récupéré ici>" dans votre html, vous devriez le supprimer.

1voto

Jonny Points 1454

Utilisez un outil de débogage javascript comme firebug, cela vous simplifiera la vie.

vous aviez une erreur de syntaxe dans votre code qui provoquait l'erreur "GetEmployee is not defined".

il manquait un "catch" après le dernier essai dans "GetXmlHttpObject()". voici la même fonction après avoir ajouté le "catch" manquant.

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }catch (e)
    {

        try
        {
            xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}

    }
return xmlHttp;
}

1voto

Svante Points 24355

Je suis un peu confus quant à la mise en place du <script> dans le no man's land entre la tête et le corps. Cela a-t-il une signification particulière ?

0voto

angus Points 1512

Var url="get_employee.php" + " ?"

(répondant au commentaire)

Ce qu'il faut faire est signalée ? Vous devez toujours attacher votre fonction FetchComplete à la propriété "onreadystatechange" de xmlHttp, mais cela ne devrait pas être une erreur de ne pas le faire.

Assurez-vous que ajaxlib.js est bien chargé, et qu'il s'agit bien du fichier dont vous parlez. Mettez des alertes et voyez si elles apparaissent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X