PHP GET和加载div

时间:2010-12-02 13:30:50

标签: php jquery mysql

我有一个新的结构获取日期,然后连接到一个php文件... jquery文档后面跟着这封信,现在我需要获取PHP文件来获取日期,然后从mysql表中选择数据把它放进等待它的div。

这是Jquery脚本......

    $(document).ready(function () {   
      $('#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.php', {choice: dateText}, function() {
                  $(this).show();
            });
            $('#apDiv8').load('yearPower.php', {choice: dateText}, function() {
                  $(this).show();
            });
            $('#apDiv10').load('yearGraph.php', {choice: dateText}, function() {
                  $(this).show();
            });
      }});
});

这是PHP

<?  
$choice = (isset($_GET['choice'])) ? date("Y-m-d",strtotime($_GET['choice'])) : date("Y-m-d"); 
$con = mysql_connect("localhost","root","mackie1604");  
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); 
?> 

为什么php不工作?

3 个答案:

答案 0 :(得分:0)

然后你将一个对象传递给.load(),这是一个POST,而不是一个GET请求 From the documentation for .load()

  

如果数据作为对象提供,则使用POST方法;否则,假设GET。

所以在PHP方面,您需要替换:

$_GET['choice']

使用:

$_POST['choice']

你也有其他错误,但它不起作用的基本起始原因是因为你没有得到你所追求的变量。您应该修复SQL注入漏洞和其他文化的年份格式(如果需要)。

答案 1 :(得分:0)

这就是你的整个代码应该是什么样子

http://pastie.org/1341230

答案 2 :(得分:0)

您使用的是单引号:

$sql = 'SELECT sum(power) AS choice '         
.'FROM feed '        
.'WHERE date = \'$choice\' '; 

因此,我们不会使用您的$choice变量,查询会将其视为$choice

针对此特定问题的解决方案:

$sql = "SELECT sum(power) AS choice "         
."FROM feed "        
."WHERE date = '$choice' ";