2010-12-15 28 views
0

J'ai un fichier PHP en utilisant json_encode pour faire un seul appel, mais il ne va pas au javascript ... J'ai essayé pendant plus d'une semaine ... Peut-être qu'il est juste en face de mon visage et je ne le vois pas, donc je vais le poster ici pour avoir un deuxième ensemble d'yeux pour voir ce que je ne vois pas ... Quelqu'un voit-il un problème, comme je ne le sais pas vraiment ...Json Encode Issue

Ici est le json_encode obtenir le 3 tableau pour faire 1 appel au javascript ...

$outarr['dayPowerP'] = $dayPowerP; 
$outarr['monthPowerP'] = $monthPowerP; 
$outarr['yearPowerP'] = $yearPowerP; 
echo json_encode($outarr); 

Voici la sortie du fichier php ... l'ID de et les valeurs de la sql sont là ....

{"dayPowerP":["13.2470"],"monthPowerP":["193.6810"],"yearPowerP":["989.6720"]} 

Voici la ajax montrant le poste et JSON ...

$(document).ready(function() { 
$('#datepicker').datepicker({maxDate: 0, dateFormat: 'yy-mm-dd', onSelect: function(dateText) { 
      var myDate = $(this).datepicker('getDate'); 
      $('#apDiv1').html($.datepicker.formatDate('DD, d', myDate)); 
      $('#apDiv5').html($.datepicker.formatDate('MM', myDate)); 
      $('#apDiv7').html($.datepicker.formatDate('yy', myDate));   
      $.ajax({ 
      type: "POST", 
      url: "clickdates.php",     
      data: {choice: dateText}, 
      dataType: "json", 
      success: function(json_data) { 
      $('#apDiv2').html(json_data['dayPowerP']).show(); 
      $('#apDiv6').html(json_data['monthPowerP']).show();  
      $('#apDiv8').html(json_data['yearPowerP']).show(); 
      } 
     })   
    }}); 
}); 

Pour le rendre vraiment clair ... voici le fichier complet de PHP. Ce code n'est pas complexe, il doit donc y avoir quelque chose de mineur que je ne vois pas ou que je ne fais pas.

Merci

Alan

Répondre

0

Mate. Json_encode ne supporte pas les tableaux associatifs.

"json_data ['dayPowerP']" ne fonctionne pas. json_data.dayPowerP devrait fonctionner, il semblerait que cela retournera un tableau, donc vous avez besoin de transtyper cela en un flottant.

Pouvez-vous s'il vous plaît poster le résultat de ceci: (voir la console)

** console.log (json_data); **

spécifiquement

success: function(json_data) { 
console.log(json_data) 

       $('#apDiv2').html(json_data['dayPowerP']).show(); 
       $('#apDiv6').html(json_data['monthPowerP']).show();  
       $('#apDiv8').html(json_data['yearPowerP']).show(); 
       } 

Si je ne me trompe pas , alors vous devriez remplacer json_data ['dayPowerP'] par json_data.dayPowerP [0] dans la fonction de succès et tout devrait fonctionner correctement.

+0

On dirait qu'il les supporte très bien, les convertissant en objets JSON comme prévu. –

+0

C'était tout !!!!! json_data.dayPowerP [0] a fait le boulot ... MERCI BEAUCOUP !!!!!! On dirait que c'est le matin de Noël en ce moment !!! Merci encore ! – hkalan2007

+0

J'aimerais avoir une norme de programmation portant mon nom. – Keyo

0

Il n'y a pas besoin de mettre chaque élément dans son propre réseau; il suffit de les incorporer directement.

0

Utilisez ceci: $ ('# apDiv2'). Html (json_data.dayPowerP [0]). Show();