2010-12-02 18 views
0

日付を取得してからPHPファイルに接続する新しい構造を持っています... jqueryのドキュメントが手紙に続き、PHPファイルを取得して日付を取得する必要があります。 mysqlテーブルからデータを選択し、それを待つdivに入れます。ここでPHPがGETされ、divにロードされます

は、jQueryのスクリプトでPHPの仕事を文句を言わないのはなぜ...ここ

$(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); 
?> 

のですか?

+1

は何を「動作しません」とはどういう意味?サーバのログに何のエラーがありますか?JSコンソールにはどんなエラーがありますか?行われているリクエストを見てください - URLは正しいですか?応答を見て、PHPはあなたが望むものを出力していますか? – Quentin

+0

@David Dorward、多分私は何かが欠落していますが、私が見ている唯一の '$ _GET'変数は' date'関数で使用されるので、問題ではないはずです。とにかく、あなたのmysqlユーザーとして 'root'を使用することは少し残忍であるようです。 – jeroen

+0

こんにちは、ルートは私のテストサーバー用で、オンラインではありません。 – hkalan2007

答えて

0

さて、ここであなたの全体のコードは、あなたが一重引用符を使用している

http://pastie.org/1341230

+0

それは私に '; ?> divの – hkalan2007

+0

速いフィードバックに感謝します...なぜそれが機能していないのか分かりません... – hkalan2007

+0

私はそれを働かせました、あなたの助けを大変ありがとう...今私はちょうど選択を取得する必要があります月と年。 – hkalan2007

0

オブジェクトを.load()に渡すと、GETリクエストではなくPOSTになります。
From the documentation for .load()

データを対象として提供される場合にPOSTメソッドが使用されます。それ以外の場合はGETとみなされます。

だから、PHP側では、あなたが交換する必要があります:

$_GET['choice'] 

付:

$_POST['choice'] 

あなたは同様に他のエラーを持っているが、それはしません基本的な開始理由仕事はあなたが後になっている変数を得ていないからです。 SQLインジェクションの脆弱性や他の文化の年の書式も修正する必要があります(必要な場合)。だからあなたの$choice変数に使用されることはありませんが、クエリはそれを見ることができます

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

+0

は.loadが$ .get(url、data、success)に相当するということは、get to requestを使用しているとは限りませんか? – Breezer

+1

@Breezer - ドキュメントをリンクしました:) 'data'がオブジェクトの場合は' POST'が使用されています...あなたはここにコードを見ることができます:https://github.com/jquery/jquery/blob/1.4.4/src/ajax.js#L49 –

+0

ああ知らなかった、まあまあ何か新しい毎日を学ぶことはできません: )thx anywaays – Breezer

0

のようになります方法です文字通り$choiceとなります。

この特定の問題の解決策:

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

こんにちは、速いフィードバックに感謝...まだそれが動作しない理由を取得しないでください。 – hkalan2007

+0

'var_dump($ sql)'を実行すると、あなたが望むクエリが得られますか? – jeroen

+0

私はそれを働かせました!ありがとうございました ! – hkalan2007

関連する問題