$.getJSON не получает данные
Доброго времени суток! Делаю выборку данных с помощью календаря в БД, задаю дату начал и конца, вывожу alert, но он получается пустой, если задать руками дату и время все работает. Возможно, что код кривой, но я только учусь. В чем может быть ошибка, не подскажете?
<form id="form1" name="form1" action="<?php $_PHP_SELF ?>" method="GET" > <center> </center> <div class="date" align= "center" > <label>Дата начала:</label> <input type="text" name="txtStartDate" id="txtStartDate" value = "2013-08-01"></input> <label>Дата окончания:</label> <input type="text" name="txtEndDate" id="txtEndDate" value = "2013-08-31"></input> <input type="submit" id="submit" value="Отправить" onclick=""></input> </form> $stime =$_GET['txtStartDate']; $etime =$_GET['txtEndDate']; //$query1 = 'SELECT * FROM pokazanie WHERE termometr_id=1 AND time >= "2013-05-03 00:00:00" AND time <= "2013-05-04 23:59:59"' ; //вот так работает $query1 = 'SELECT * FROM pokazanie WHERE termometr_id=1 AND time >= "'.$stime.' 00:00:00" AND time <= "'.$etime.' 23:59:59"' ; $result1 = mysql_query($query1) or die('Ошибка запроса: ' . mysql_error()); $djson1 = array(); $i=0; while($row1 = mysql_fetch_array($result1)){ array_push($djson1,array($row1['time_unix'],$row1['meaning']));//Обьединяем в один $i++; } echo str_replace('"','',json_encode($djson1)); $.getJSON('http://sa1.ru/json.php?&txtStartDate=' +txtStartDate +'&txtEndDate' +txtEndDate, function (data) { alert(data); |
$query1 = 'SELECT * FROM pokazanie WHERE termometr_id=1 AND time BETWEEN "'.mysql_real_escape_string($_GET['txtStartDate']).'" AND "'.mysql_real_escape_string($_GET['txtEndDate']).' 23:59:59"'; $result1 = mysql_query($query1) or die('Ошибка запроса: ' . mysql_error()); //только на время отладки while($row = mysql_fetch_assoc($result1)) $json[] = $row; echo json_encode($json); //str_replace('"','',..) это как понимать? Невалидный JSON формат получится после этого А это что? $.getJSON('http://sa1.ru/json.php?&txtStartDate=' +txtStartDate +'&txtEndDate' +txtEndDate, function (data) Кто, когда на клиенте вызывает это, передает параметры и т.д.? Код наверное показывать надо. |
echo json_encode($json); //str_replace('"','',..) это как понимать? Невалидный JSON формат получится после этого
str_replace('"','',..) вот это использовал, так как данные для библиотеки Highstock должны быть в таком формате [[1354193753,1],...,[1431069592,2]] Вот весь код $(function () { //-------------------------------------------------------------------------------------------------------- Highcharts.setOptions({ lang: { }, global: { useUTC: false } }); //----------------------------------------------------------------------------------------------------------- var seriesOptions = [], seriesCounter = 0, yAxiss = 0, vos = 0, styl = 0, itog = 0, points = 10, names = ['1'] createChart = function () { $('#container').highcharts('StockChart', { colors: ["#f45b5b", "#8085e9", "#8d4654", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"], chart: { backgroundColor: null, borderColor: '#EBBA95', borderWidth: 2, borderRadius: 10, style: { fontFamily: 'serif', fontSize:"15px", }, events : { }, zoomType: 'x', }, //-----------------------------НАСТРОЙКА КНОПОК ВРЕМЕННЫХ ИНТЕРВАЛОВ-------------------- rangeSelector: { buttons: [ ], inputEnabled: false, // inputDateFormat: '%d.%m.%Y', // Меняем на привычный для нас формат даты в интервалах // inputEditDateFormat: '%d.%m.%Y', buttonTheme: { fill: 'white', stroke: '#C0C0C8', 'stroke-width': 1, states: { select: { fill: '#D0D0D8' } }, width: 60, }, selected: 4 // Какая кнопка выбрана по умолчанию }, //-------------------------------------------------ОСЬ У--------------------------------------------------------- xAxis: [{ gridLineWidth: 1, }], yAxis: [ { // Правая ось title : { text : 'Температура в центре(2) °C', }, lineWidth : 3, tickWidth : 3, tickLength : 6, labels : { align : 'left', formatter : function () { return Highcharts.numberFormat(this.value, 1, '.', '')+ '°'; } }, }, { // левая ось opposite: false, title : { text : 'Температура на потолке °C',//Название оси }, lineWidth : 3,//толщина шкалы tickWidth : 3,//толщина штриха tickLength : 6,//длина штриха labels : { align : 'right',//Сторона подписи оси formatter : function () { //return Highcharts.numberFormat(this.value, 1);//значения по 0,5 return Highcharts.numberFormat(this.value, 1, '.', '')+ '°';//Значения по сотым } }, } ], //----------------------------------------------------Настройка легенды------------------------------------- legend: { enabled: true, align: 'center', borderWidth: 2, // layout: 'vertical', verticalAlign: 'bottom', // itemDistance: 50,//Дистанция между чартами shadow: true, }, //----------------------------------------------------Подсказки--------------------------------------------- //------------------------------------------------------------------------------------------------------ tooltip: { backgroundColor: 'rgba(250, 250, 250, .85)', // Фон немного темнее borderColor: 'rgba(100, 100, 100, .90)', // Цвет границы (по умолчанию меняется автоматом) xDateFormat: '%d.%m.%Y %H:%M', // Наш формат даты // Тут немного увеличиваем размер даты headerFormat: '<span style="font-size: 12px">{point.key}</span><br/>', // Формат надписей в подсказке, названия цветом графика, а значения жирным pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>', }, //----------------------------------------------------PlotOptions------------------------------------ plotOptions: { series: { states: { hover: { enabled: true, lineWidth: 3 } } } }, //------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------- title: { text: 'Система термомониторинга', color: 'black', fontSize: '16px', fontWeight: 'bold' }, credits : { enabled : false //выключаем логотип чарта }, subtitle: { text: 'График построен за ...', }, //------------------------------------------------------ДАННЫЕ------------------------------------------------ series: seriesOptions, }); }; $.each(names, function (i, name) { $.getJSON('http://sa1.ru/jsonp.php?name=' + name.toLowerCase(), function (data) { alert (data); seriesOptions[i] = { yAxis: yAxiss, name: label, data: data, type: 'spline', dashStyle: styl, tooltip: { valueSuffix: tips,//tips }, marker : { enabled : false,//если true то отображает каждую точку на графике radius: 4, states : { hover : { enabled : true,//появление маркеров при наведении radius : 5,//Радиус обозначения точки на графике } } }, }; seriesCounter += 1; if (seriesCounter === names.length) { createChart(); } }); }); }); |
Цитата:
Нужно получать числа как числа, значит поступайте так: echo json_encode($json, JSON_NUMERIC_CHECK); И будете получать числа, а не "грязным" способом действовать. Константа JSON_NUMERIC_CHECK доступна начиная с версии 5.3.3. Я не буду разбираться во все строках, но если запрос к серверу не выдает результата, значит запрос не получает параметров, и нужно проконтролировать это здесь: после строки 180 добавить - console.log(i, name), есть ли что вообще? А строки 183 - 224 на время проверки заремировать. |
Цитата:
|
Часовой пояс GMT +3, время: 22:52. |