2010-12-02 48 views
0

我有一個新的結構獲取日期,然後連接到一個PHP文件...該jQuery文檔遵循信,現在我需要獲取PHP文件來獲取日期,然後從mysql表中選擇數據並將其放入等待它的div中。PHP GET和加載一個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的工作?

+1

什麼是「不會工作」是什麼意思?你在服務器日誌中遇到什麼錯誤/你在JS控制檯遇到什麼錯誤?看看正在提出的請求 - 網址是否正確?看看回應,PHP輸出你想要的東西嗎? – Quentin 2010-12-02 13:34:01

+0

@David Dorward,也許我錯過了一些東西,但是我看到的唯一`$ _GET`變量被用在`date`函數中,所以不應該是一個問題,應該是這樣嗎?無論如何,使用`root`作爲你的mysql用戶似乎也有點矯枉過正。 – jeroen 2010-12-02 13:40:16

+0

你好,根目錄只針對我的測試服務器,不在線。 – hkalan2007 2010-12-02 13:55:36

回答

0

然後你傳遞一個對象到.load(),這是一個POST,而不是GET請求。
From the documentation for .load()

如果數據被作爲一個對象提供使用POST方法;否則,假定爲GET。

所以在PHP端,你就需要更換:

$_GET['choice'] 

有了:

$_POST['choice'] 

您有其他錯誤爲好,但基本出發原因,它不會工作是因爲你沒有得到你想要的變量。您應該修復SQL注入漏洞以及其他文化的年份格式(如果需要)。

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' ";