2010-12-02 5 views
0

나는 새로운 구조를 가지고 날짜를 얻은 다음 php 파일에 연결 ... jquery 문서가 편지를 따라 갔다. 이제 PHP 파일을 가져 와서 날짜를 얻고, 그런 다음 mysql 테이블에서 데이터를 선택하고 그것을 기다리고 div에 넣어.PHP가 가져 오기 및 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 콘솔에 어떤 오류가 있습니까? 요청 사항을 확인하십시오. 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()에 전달합니다. POST는 GET 요청이 아닙니다.
From the documentation for .load() : 데이터를 대상으로 제공되는 경우

포스트 방법이 이용된다; 그렇지 않으면 GET이 가정됩니다.

$_GET['choice'] 

으로 :

그래서 PHP 측에서, 당신은 교체해야

$_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