Structure JSON ne fonctionne pas sous IE7 (JavaScript)

OK, je suis nouveau sur JSON, donc s'il vous plaît pardonnez-moi si ma question est un peu ignorants - j'ai battu ma tête contre le mur trop et besoin de quelques conseils d'experts.

Je vais essayer d'obtenir un simple exemple de travail où une page HTML utilise jQuery JSON/AJAX fonctions pour faire un appel à un exemple de page PHP qui passe d'une simple structure de données JSON et puis la page utilise jQuery pour écrire l'un des éléments de la structure de données à la page. Œuvres dans les FF. Ne fonctionne pas sous IE7 arrrggghhhh!

Code HTML (parties pertinentes):

<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript">
function testAJAX() {
  $.getJSON("test-ajax.php", function(json){
      $("#div1").html(json.var1[1]);
  });
}
</script>
</head>
<body>
<input type="button" value="test ajax" onclick="testAJAX();" />
<div id="div1"> </div>
</body>

Code PHP (test-ajax.php):

<?php
include_once('./json.php'); 
$output = array('var1' => array('value1a', 'value1b', 'value1c'), 
                'var2' => array('value2a', 'value2b', 'value2c')); 

header("Content-type: text/plain");
echo json_encode($output);
?>

json.php a la json_encode() fonction que j'utilise - je l'ai eu à partir de http://us2.php.net/manual/en/function.json-encode.php. Je l'utilise parce que je n'ai pas de PHP5 et mon sys admins ne sont pas installer n'importe quel support pour elle. L'affichage de test-ajax.php directement dans votre navigateur affiche un JSON sérialisé structure comme ceci:

{"var1":["value1a","value1b","value1c"],"var2":["value2a","value2b","value2c"]}

qui semble être un JSON valide structure. Dans mon JavaScript je suis en train de référence 'value1b' en faisant ceci: json.var1[1]. FF gère cela très bien. IE7 dit que c'est pas défini.

Ce que je fais mal? Comment dois-je prendre le transfert d'un tableau 2d comme ce

array('var1' => array('value1a', 'value1b', 'value1c'), 
      'var2' => array('value2a', 'value2b', 'value2c'));

sur JSON/AJAX? Ou n'est-ce pas possible?

  • Il faut absolument être possible. Je viens de tester cette chaîne JSON dans IE7 et il a bien fonctionné, j'ai pu réussir à trouver la valeur de json.var1[1]. Le problème doit être ailleurs, vous pouvez poster votre getJSON fonction?
  • getJSON est à partir de la bibliothèque jQuery.
  • hé oui, ma faute - était cacher le problème - voir ma réponse. merci!
InformationsquelleAutor Bill | 2009-02-25