日期不发布正确

时间:2010-12-01 16:25:17

标签: php jquery mysql datetime

我似乎没有快速到位......

似乎无法获得单个内联(嵌入)jquery Datepicker dateText正确地发布到PHP和mysql以从表中返回数据..我的阅读让我明白它应该是正确的,但事实并非如此。现在,datepicker选择确实有几​​个事件触发单个选择...数据按日,月和年要求,以及发送日期以创建一天中的几小时数据的高图图表一个月,一年一个月。

表非常简单......日期,时间,功率

这是Javasctipt ......

$(document).ready(function () {   
  $('#datepicker').datepicker({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));
        $.post('dayPower.php', {choice: dateText.val}, function(data) {
            $('#apDiv2').html(data).show();
        });
        $.post('dayGraph.php', {choice: dateText.val}, function(data) {
              $('#apDiv4').html().show();
        });
        $.post('monthPower.php', {choice: dateText.val}, function(data) {
            $('#apDiv6').html(data).show();
        });
        $.post('monthGraph', {choice: dateText.val}, function(data) {
              $('#apDiv9').html().show();
        });
        $.post('yearPower.php', {choice: dateText.val}, function(data) {
            $('#apDiv8').html(data).show();
        });
        $.post('yearGraph', {choice: dateText.val}, function(data) {
              $('#apDiv10').html().show();
        });
  }});

});

这是用于获取当天数据的POST的PHP(dayPower.php)......

    <?
if(isset($_POST['choice']))
$choice = (isset($_POST['choice'])) ? date("Y-m-d",strtotime($_POST['choice'])) : date("Y-m-d");
$con = mysql_connect("localhost","root","xxxxxxxx"); 
if (!$con)  { 
die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("inverters", $con); 

$sql = 'SELECT sum(power) AS power '        
.'FROM feed '       
.'WHERE date = $choice';
$res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error());
$row = mysql_fetch_assoc($res);
echo $row['power']; 
?>

PHP的第一行和第二行应该从datepicker获取日期,然后将其放入mysql可以读取的日期,并且sql select应该从表中获取值并将其回显到我所拥有的DIV中告诉它去......我做错了什么?

谢谢,

罗志祥

我现在让Jquery使用这个脚本发布到PHP文件......

 $('#datepicker').datepicker({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));
        $('#apDiv2').load('dayPower.php', {choice: dateText}, function() {
              $(this).show();
        });
        $('#apDiv4').load('dayGraph.php', {choice: dateText}, function() {
              $(this).show();
        });
        $('#apDiv6').load('monthPower.php', {choice: dateText}, function() {
              $(this).show();
        });
        $('#apDiv9').load('monthGraph', {choice: dateText}, function() {
              $(this).show();
        });
        $('#apDiv8').load('yearPower.php', {choice: dateText}, function() {
              $(this).show();
        });
        $('#apDiv10').load('yearGraph', {choice: dateText}, function() {
              $(this).show();
        });
  }});

});

由于新结构使用的是LOAD而不是POST,我的理解是我必须在PHP中使用GET,所以我已经做了我理解应该工作的更改,但他们没有...我似乎回来了和以前一样的船...这里是新的PHP ...任何想法为什么它不起作用????

<?  
$choice = (isset($_GET['choice'])) ? date("Y-m-d",strtotime($_GET['choice'])) : date("Y-m-d"); 
$con = mysql_connect("localhost","root","xxxxxxxx");  
if (!$con)  {  
die('Could not connect: ' . mysql_error());  
}  
mysql_select_db("inverters", $con);   
$sql = 'SELECT sum(power) AS choice '         
.'FROM feed '        
.'WHERE date = $choice'; 
$res = mysql_query($sql) or die('sql='.$sql."\n".mysql_error()); 
$row = mysql_fetch_assoc($res); 
echo $row['choice'], '<br />';  
mysql_close($con); 
?> 

2 个答案:

答案 0 :(得分:1)

日期选择器如何格式化所选日期?我使用JS日期选择器的所有经验都会返回人类可读的日期,而不是我假设您在数据库中使用的UNIX时间戳。在这种情况下,您可以在日期选择器的日期字符串上使用$choice_timestamped = strtotime($choice);,然后在输出时使用date()函数,以您喜欢的任何格式显示。

答案 1 :(得分:1)

我注意到你正在使用dateText.val。在我看来,根据documentationdateText只是一个字符串:

  

该功能接收所选   将日期作为文本和日期选择器   实例作为参数。

现在,函数的第二个参数是input元素。这可能是你想要.val()打开的(注意括号)。

尝试更改: $('#datepicker').datepicker({onSelect: function(dateText) {
致:$('#datepicker').datepicker({onSelect: function(dateText,inst) {
然后将所有dateText.val更改为inst.val()