PHP GET и загрузка в div

0

У меня есть новая структура, получающая дату, затем подключение к файлу php... Документация jquery сопровождается буквой, теперь мне нужно получить файл PHP, чтобы получить дату, а затем выбрать данные из таблицы mysql и положил его в ожидающий его div.

Вот JQuery script...

    $(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 выводит то, что вы хотите?
  • 0
    @David Дэвид Дорвард, может быть, я что-то упустил, но единственная переменная $_GET я вижу, используется в функции date так что это не должно быть проблемой, не так ли? В любом случае, использование root качестве вашего пользователя mysql также кажется излишним.
Показать ещё 3 комментария
Теги:

3 ответа

0
Лучший ответ

Хорошо, вот как выглядит ваш весь код

http://pastie.org/1341230

  • 0
    Это дает мне вывод '; ?> в div,
  • 0
    Спасибо за быстрый отзыв ... Не понимаю, почему не работает ...
Показать ещё 1 комментарий
0

Затем вы передаете объект .load(), это POST, а не запрос GET.
Из документации для .load():

Метод POST используется, если данные предоставляются как объект; в противном случае предполагается, что GET.

Итак, на стороне PHP вам нужно будет заменить:

$_GET['choice']

С

$_POST['choice']

У вас есть и другие ошибки, но основная причина, по которой она не будет работать, заключается в том, что вы не получаете переменную, которой вы пользуетесь. Вы должны исправить уязвимость SQL-инъекции и форматирование года для других культур (при необходимости).

  • 0
    в документе написано, что .load эквивалентно $ .get (url, data, success), не означает ли это, что он использует get для запроса?
  • 1
    @Breezer - я связал документацию :) Он отмечает, что POST используется, если data являются объектом ... Вы можете увидеть код здесь: github.com/jquery/jquery/blob/1.4.4/src/ajax.js # L49
Показать ещё 4 комментария
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' "; 
  • 0
    Здравствуйте, спасибо за быстрый отзыв ... до сих пор не понимаю, почему это не работает.
  • 0
    var_dump($sql) ли вы запрос, который вы хотите, если вы делаете var_dump($sql) ?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню