Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2013, 16:02
Аспирант
Отправить личное сообщение для valyan Посмотреть профиль Найти все сообщения от valyan
 
Регистрация: 05.11.2012
Сообщений: 55

Не отрабатывет условие проверки GET переменных
Здравствуйте. Не могу понять в чем моя ошибка
Есть функция, которая аякс запросом получает данные
function GetOrders(action, status, fromTime, toTime, workId, serviceID, companyID, fromHour, toHour) {
  var html = $.ajax(
  {
	url: "request.php?action=" + action + "&status=" + status + "&fromTime=" + fromTime + "&toTime=" + toTime + "&workId=" + workId + "&serviceID=" + serviceID + "&companyID=" + companyID + "&warehouseID=" + warehouseID + "&fromHour=" + fromHour + "&toHour=" + toHour + "",
	dataType: 'json',
	async: false,
	success: function (data) { },
	error: function (req, err) {}
  }).responseText;
return (html);
}


Есть также обработка запроса
$link = mysql_connect($hostname, $username, $password) or die('Не удалось соединиться: ' . mysql_error());
mysql_select_db($dbName) or die('Не удалось выбрать базу данных');

$status = $_GET['status'];
$fromTime  = $_GET['fromTime'];
$toTime  = $_GET['toTime'];
$workId = $_GET['workId'];
$serviceID = $_GET['serviceID'];
$companyID = $_GET['companyID'];
$warehouseID = $_GET['warehouseID'];
$fromHour = $_GET['fromHour'];
$toHour = $_GET['toHour'];


if (($fromHour != "") && ($toHour != ""))
{
	$fromTime = $fromTime.' '.$fromHour.':00:00';
	$toTime = $toTime.' '.$toHour.':00:00';
}
//else
//{
	//$fromTime .= ' 00:00:00';
	//$toTime .= ' 23:00:00';
//}

// отменённые/выполненные заказы за сутки(по часам)
if ($action == "getCountOnHours")
{
	$rows = array();
			  
	$query = 'SELECT hours.h AS HOUR , COUNT(orders.id) AS count
			  FROM orders ';
	if ($companyID != 0) 
		$query .= 'JOIN works ON (orders.cid = works.cid) AND (works.uid IN ('.$companyID.'))';
	
	if ($serviceID != 0) 
		$query .= 'JOIN services ON (orders.serviceID = services.id) AND (services.id IN('.$serviceID.'))';
	
	if ($workId != 0) 
		$query .= 'JOIN workCloud ON (orders.cid = workCloud.id) AND (workCloud.id IN('.$workId .'))';
	
	if ($warehouseID != 0) 
		$query .= 'JOIN warehouses ON (orders.warehouseID = warehouses.id) AND (warehouses.id IN('.$warehouseID.'))';
 	//$query .= 'RIGHT JOIN hours ON hours.h = HOUR(date_add(orders.closeTime, INTERVAL orders.timeOffset second)) AND ';
 	$query .= 'RIGHT JOIN hours ON hours.h = HOUR(DATE_SUB(DATE_ADD( orders.closeTime, INTERVAL orders.timeOffset SECOND), INTERVAL orders.settlementPeriod HOUR )) ';
 	
 	
 	if (($fromHour != "") && ($toHour != "")) 
	{
		$query .= ' AND AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN  "'.$fromTime.'" AND "'.$toTime.'")';
	}
	else
	{
		$query .= ' AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN  date_add("'.$fromTime.'  00:00:00", interval orders.settlementPeriod hour) AND  date_add("'.$toTime.' 23:59:59", interval orders.settlementPeriod hour))';
	}
 	/*if (($fromHour != "") && ($toHour != "")) 
 		$query .= '(date_add(orders.closeTime, INTERVAL orders.timeOffset second) BETWEEN  "'.$fromTime.'" AND "'.$toTime.'")';
 	else  
 		$query .= '(date_add(orders.closeTime, INTERVAL orders.timeOffset second) BETWEEN  "'.$fromTime.' 00:00:00" AND "'.$toTime.' 23:00:00")';*/
 	
	$query .= ' AND (orders.status IN( '.$status.' )) GROUP BY HOUR';
	$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
	while ($row = mysql_fetch_array($result))
	{
		$rows[] = $row;
	}
	
	echo json_encode($rows);
}

Изменил на неправильный запрос в части

if (($fromHour != "") && ($toHour != ""))
{
$query .= ' AND AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN "'.$fromTime.'" AND "'.$toTime.'")';
}
чтобы наверняка не выполнился при $fromHour != "" $toHour != "". Но никак при указанных fromHour и toHour туда не "заходит" какие бы параметры не указывал.

Пробовал и так
http://test/order_diagramm.php?graph=orders&fromTime=2013-11-29&fromHour=00&toTime=2013-11-29&toHour=23&companyID=1

и так
http://test/order_diagramm.php?graph=orders&fromTime=2013-11-29&fromHour=&toTime=2013-11-29&toHour=&companyID=1

Но всегда выполняется так, как-будто значения fromHour и toHour не указаны. Причем если менять другие параметры, то все отрабатывает, загвоздка именно на этих параметрах. Подскажите в чем дело. Заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2013, 16:11
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

предлагаю сделать следующее
В пхп пишите var_dump($_GET)
Выведет все переменные гета
Там вы увидите что получаете, какие ключи и значения
если ключи правильные и значения тоже

В общем знаеть будете точно куда копать, толи скрипт не то шлет либо вы ожидаете не то!
Ответить с цитированием
  #3 (permalink)  
Старый 28.01.2014, 01:17
Аватар для omepta.cc
Новичок на форуме
Отправить личное сообщение для omepta.cc Посмотреть профиль Найти все сообщения от omepta.cc
 
Регистрация: 27.01.2014
Сообщений: 5

fromHour и toHour - ПОМЕНЯЙ НАЗВАНИЯ ДЛЯ НАЧАЛА В ГЕТ ЗАПРОСЕ (МОЖЕТ С ФУНКЦИЕЙ АЯКС-ЯВА-ПХП КОНФЛИКТ) , ПОМЕНЯЙ МЕСТАМИ ИЛИ УДАЛИ ЧАСТЬ
function GetOrders(action, status, fromTime, toTime, workId, serviceID, companyID, fromHour, toHour)
НА function GetOrders(fromHour, toHour) , МОЖЕТ ОБРЕЗАТЬСЯ КОЛИЧЕСТВО ГЕТ ЗАПРОСОВ В ФУНКЦИИ, УДАЧИ
Ответить с цитированием
  #4 (permalink)  
Старый 28.01.2014, 06:55
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

1. Вместо хардкорного присвоения одноименным переменным значений одноименных элементов массива грамотные творцы юзают

http://ru2.php.net/manual/en/function.extract.php

2. Прежде чем обрабатывать запрос надо посмотреть что в нем приходит. Самый простой способ - вывести в браузер, откуда в случае с аяксом ответ попадет в консоль в браузере же.

У меня вот такая крайне полезная функция есть.

defined('PAGE_ENCODING') or define('PAGE_ENCODING', 'UTF-8');
function echoit($msg) {
	echo '<br/>';
	echo '<br/>';
	print '<pre>';
	echo htmlentities( print_r($msg, true), ENT_QUOTES, PAGE_ENCODING, false);
	print '</pre>';
	echo '<br/>';
	echo '<br/>';
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отрабатывет условие проверки GET переменных valyan Серверные языки и технологии 1 30.11.2013 14:32
Условие выполняются после обработки функции sig jQuery 3 25.01.2013 13:06
Избавление от глобальных переменных при проходе алгоритма через несколько ивентов shoo Общие вопросы Javascript 4 13.11.2012 12:07
Условие сравнение юрл с которого перешли с заданным niksss80 Общие вопросы Javascript 4 06.01.2012 17:43
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52