Bonjour,

Je cherche a traduire via bing transaltion, un resultat Json. Je me base sur ce tuto qui a l'air simple : http://msdn.microsoft.com/en-us/library/dd877846.aspx

Mon fichier Json fonctionne très bien.

J'utilise des includes dans mon php, comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
include("./include/header.php"); 
include("./include/conn.php");
 
$sql=mysql_query(requete);
 
include("./include/lec.php");
include("./include/dec.php");
Mes fonctions javascript ce trouve dans mon header :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Bing API 2.2 Translation Sample</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script id="searchCallback" type="text/javascript" src="">
    </script>
 
<script type="text/javascript">
 
    // Remplacer la chaîne suivante à la AppId vous avez reçu de Centre 
 // Bing Developer.  var AppId = "Insérez votre AppId ici";
 // Bing API échantillon de code 2.2 démontrant l'utilisation de l'SourceType
     var AppId = "App"; //Dans mon code ce champs est bien renseigner
     // Traduction sur le protocole JSON.  
    function Search()
    {
 
        var requestStr = "http://api.bing.net/json.aspx?"
 
             // Champs de demande commune (requis) 
            + "AppId=" + AppId
            + "&Query=Espero"
            + "&Sources=Translation"
 
            // champs de demande commune (facultatif) 
            + "&Version=2.2"
 
           // SourceType champs spécifiques (requis)
            + "&Translation.SourceLanguage=fr"
            + "&Translation.TargetLanguage=en"
 
             // JSON champs spécifiques demande (option)
            + "&JsonType=callback"
            + "&JsonCallback=SearchCompleted";
 
         var requestScript = document.getElementById("searchCallback");
 
         requestScript.src = requestStr;
         alert(requestStr);//voir en bas de la conversation
 
    }
 
    function SearchCompleted(response)
    {
	//alert(response);
 
        var errors = response.SearchResponse.Errors;
        if (errors != null)
        {
            // / Il ya des erreurs dans la réponse.  Afficher les détails d'erreur
            DisplayErrors(errors);
 
        }
        else
        {
            // Il n'y avait aucune erreur dans la réponse.  Affichage des résultats 
           // Traduction
            DisplayResults(response);
 
        }
    }
 
    function DisplayResults(response)
    { 
        var output = document.getElementById("output");
        var resultsHeader = document.createElement("h4");
        var resultsList = document.createElement("ul");
        output.appendChild(resultsHeader);
        output.appendChild(resultsList);
 
        var results = response.SearchResponse.Translation.Results;
 
        // Affichage de la tête des résultats.
        resultsHeader.innerHTML = "Bing API Version "
            + response.SearchResponse.Version
            + "<br />Translation results for "
            + response.SearchResponse.Query.SearchTerms
            + "<br />";
 
         // affichage des résultats de traduction.
        var resultsListItem = null;
        for (var i = 0; i < results.length; ++i)
        {
            resultsListItem = document.createElement("li");
            resultsList.appendChild(resultsListItem);
            resultsListItem.innerText = results[0].TranslatedTerm;
        }
    }
 
        function DisplayErrors(errors)
    {
        var output = document.getElementById("output");
        var errorsHeader = document.createElement("h4");
        var errorsList = document.createElement("ul");
        output.appendChild(errorsHeader);
        output.appendChild(errorsList);
 
        // Itérer sur la liste des erreurs et afficher les détails d'erreur.  
        errorsHeader.innerHTML = "Errors:";
        var errorsListItem = null;
        for (var i = 0; i < errors.length; ++i)
        {
            errorsListItem = document.createElement("li");
            errorsList.appendChild(errorsListItem);
            errorsListItem.innerHTML = "";
            for (var errorDetail in errors[i])
            {
                errorsListItem.innerHTML += errorDetail
                    + ": "
                    + errors[i][errorDetail]
                    + "<br />";
            }
 
            errorsListItem.innerHTML += "<br />";
        }
    }
 
    </script>
	</head>
<body onload="Search()">
<div id="output">
La fin de mon div et body se trouve dans mon fichier dec et j'ai bien une variable $output qui se trouve dans lec.php (qui est inclu).

Alors en mettant des alert je me suis aperçu que je rentrais bien dans la fonction Search mais pas dans les autres.
Lien que je recupere via mon alert(requestStr) est :http://api.bing.net/json.aspx?AppId=...earchCompleted.
En allant sur ce lien je vois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(typeof SearchCompleted == 'function') SearchCompleted({"SearchResponse":{"Version":"2.2","Query":{"SearchTerms":"Espero"},"Translation":{"Results":[{"TranslatedTerm":"Espero"}]}}} /* pageview_candidate */);
Personnellement je vois pas comment il peut rentrée dans mes autres fonctions (SearchCompleted, DisplayResults ou DisplayErrors) car je note nul par SearchCompleted(response) par exemple.