2010-12-15 6 views
0

Ich habe eine PHP-Datei mit json_encode, um einen einzigen Anruf zu machen, aber es geht nicht auf das Javascript ... Ich habe seit über einer Woche versucht ... Vielleicht ist es direkt vor meinem Gesicht und ich sehe es nicht, also werde ich es hier posten, um eine zweite Reihe von Augen zu haben, um vielleicht zu sehen, was ich nicht tue ... Sieht jemand ein Problem, wie ich wirklich nicht ...Json Encode Problem

Hier

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

Hier ist die Ausgabe der pHP-Datei ... die IDs und die Werte aus der sQL-Recht gibt es die json_encode den 3-Array immer 1 Aufruf die Javascript zu machen ... ....

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

Hier ist die Ajax zeigt den Pfosten, und 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(); 
      } 
     })   
    }}); 
}); 

Um es wirklich klar ... hier ist die volle PHP-Datei.

Das ist kein komplexer Code, also muss es etwas Minderwertiges geben, das ich nicht sehe oder tue.

Dank

Alan

Antwort

0

Mate. Json_encode unterstützt keine assoziativen Arrays.

"json_data ['dayPowerP']" wird nicht funktionieren. json_data.dayPowerP sollte funktionieren, es sieht so aus, als würde das ein Array zurückgeben, also müssen Sie das in einen Float-Typ schreiben.

Können Sie bitte das Ergebnis dieses Beitrags: (siehe die Konsole)

** console.log (json_data); **

speziell

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(); 
       } 

Wenn ich mich nicht irre , dann sollten Sie json_data ['dayPowerP'] durch json_data.dayPowerP [0] in der Erfolgsfunktion ersetzen und alles sollte korrekt funktionieren.

+0

Sieht so aus, als ob es sie gut unterstützt und sie wie erwartet in JSON-Objekte konvertiert. –

+0

Das war es !!!!! json_data.dayPowerP [0] hat den Job gemacht ... DANKE SEHR VIEL !!!!!! Es fühlt sich an, als wäre es jetzt Weihnachtsmorgen !!! Danke noch einmal ! – hkalan2007

+0

Ich wünschte, ich hätte einen Programmierstandard, der nach mir benannt ist. – Keyo

0

keine Notwendigkeit Es ist jedes einzelne Element in seiner eigenen Reihe zu setzen; einfach direkt einbetten.

0

Verwenden Sie dies: $ ('# apDiv2') .html (json_data.dayPowerP [0]). Show();