PHP, JSON и JQUERY - PullRequest
       2

PHP, JSON и JQUERY

0 голосов
/ 11 декабря 2010

Я прочитал, не обнаружил ошибок, но php, json и jquery играют хорошо ... Кто-нибудь может увидеть что-то, чего я не вижу в этом коде, чтобы оно не работало?

В моем файле clickdates.php есть 3 значения, которые json shpould сделать за 1 вызов ... но это не так ... Вот файл php (и когда я проверяю его, я получаю 3 значения и 3 идентификатора это должно соединиться в JQuery) .. Можете ли вы увидеть что-то не так, что я не ??

    <?php  
    $choice = (isset($_POST['choice'])) ? date("Y-m-d",strtotime($_POST['choice'])) : date("Y-m-d"); 
    $con = mysql_connect("localhost","root","xxxxxx");  
    if (!$con)  {  die('Could not connect: ' . mysql_error());  }  
    mysql_select_db("inverters", $con);  
    $sql = "SELECT sum(power/1000) AS choice FROM feed WHERE date = '".$choice."' group by date"; $res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error()); 
    $row = mysql_fetch_assoc($res);
    $dayPowerP = array( $row['choice']);
    ?>
    <?php 
$choice = (isset($_POST['choice'])) ? date("m",strtotime($_POST['choice'])) : date("m"); $con = mysql_connect("localhost","root","xxxxxx");  
if (!$con)  {  die('Could not connect: ' . mysql_error());  }  
mysql_select_db("inverters", $con);  
$sql = "SELECT sum(power/1000) AS choice FROM feed WHERE month(date) = '".$choice."'";
$res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error()); 
$row = mysql_fetch_assoc($res);
$monthPowerP = array($row['choice']);
?>
<?php 
$choice = (isset($_POST['choice'])) ? date("Y",strtotime($_POST['choice'])) : date("Y"); $con = mysql_connect("localhost","root","xxxxxx");  
if (!$con)  {  die('Could not connect: ' . mysql_error());  }  
mysql_select_db("inverters", $con);  
$sql = "SELECT sum(power/1000) AS choice FROM feed WHERE year(date) = '".$choice."'";
$res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error()); 
$row = mysql_fetch_assoc($res);
$yearPowerP = array( $row['choice']);
?>    <?php
    $outarr['dayPowerP'] = $dayPowerP;
    $outarr['monthPowerP'] = $monthPowerP;
    $outarr['yearPowerP'] = $yearPowerP;
    echo json_encode($outarr);
    ?>

Вот мой тестовый вывод из файла php ... на мой взгляд, он должен работать ... но это не так.

{"dayPowerP":["12.7240"],"monthPowerP":["145.0460"],"yearPowerP":["941.0370"]}

Вот очень простая jquery, которая должна помещать значения в том месте, где они принадлежат 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']); 
            $('#apDiv6').html(json_data['monthPowerP']);     
            $('#apDiv8').html(json_data['yearPowerP']); 

           } 
        })           
    }});
});

Что я здесь не вижу ??

Alan

1 Ответ

0 голосов
/ 11 декабря 2010

$. Ajax ожидает корректный вывод json, при котором php-файл не отправляется, потому что вы не отправляете правильные заголовки, используйте

  ini_set('display_errors', 0);
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
  header("Cache-Control: no-cache, must-revalidate" );
  header("Pragma: no-cache" );
  header("Content-type: application/json");
  echo json_encode($outarr);

p.s. ну конечно нужно поменять даты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...