 
			
				04.06.2015, 08:50
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2015 
					
					
					
						Сообщений: 3
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				$.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);
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2015, 09:44
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
$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)
 
Кто, когда на клиенте вызывает это, передает параметры и т.д.? Код наверное показывать надо.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2015, 10:17
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2015 
					
					
					
						Сообщений: 3
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		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();
				
            }
        });
	
    });
	
	
});
 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2015, 10:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Efiop1
			
		
	 | 
 
	| 
		это использовал, так как данные для библиотеки Highstock должны быть в таком формате [[1354193753,1],...,[1431069592,2]]
	 | 
 
	
 
 Нельзя так поступать. Благо что у вас числа передаются, и прокатывает, а если строки передать надо, тогда уже не прокатит. 
Нужно получать числа как числа, значит поступайте так:
 
echo json_encode($json, JSON_NUMERIC_CHECK);
 
И будете получать числа, а не "грязным" способом действовать. Константа JSON_NUMERIC_CHECK доступна начиная с версии 5.3.3.
 
Я не буду разбираться во все строках, но если запрос к серверу не выдает результата, значит запрос не получает параметров, и нужно проконтролировать это здесь:
 
после строки 180 добавить - console.log(i, name), есть ли что вообще?
 
А строки 183 - 224 на время проверки заремировать.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				04.06.2015, 11:04
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Новичок на форуме 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 04.06.2015 
					
					
					
						Сообщений: 3
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от laimas
			 
		
	 | 
 
	
		Нельзя так поступать. Благо что у вас числа передаются, и прокатывает, а если строки передать надо, тогда уже не прокатит. 
Нужно получать числа как числа, значит поступайте так: 
echo json_encode($json, JSON_NUMERIC_CHECK);
  
И будете получать числа, а не "грязным" способом действовать. Константа JSON_NUMERIC_CHECK доступна начиная с версии 5.3.3. 
 
Я не буду разбираться во все строках, но если запрос к серверу не выдает результата, значит запрос не получает параметров, и нужно проконтролировать это здесь: 
 
после строки 180 добавить - console.log(i, name), есть ли что вообще? 
 
А строки 183 - 224 на время проверки заремировать.
	 | 
 
	
 
 Спасибо большое!   
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 
 
 
 
	 | 
 
 
 |