Показать сообщение отдельно
  #1 (permalink)  
Старый 21.02.2014, 22:21
Интересующийся
Отправить личное сообщение для RAPOS Посмотреть профиль Найти все сообщения от RAPOS
 
Регистрация: 20.07.2013
Сообщений: 25

Не отрабатывает код!
Проблема решена самым элементарным способом! Создал ещё одну таблицу, в неё записывается выбранная сейчас дата! После идёт к ней запрос, узнаём дату, фильтруем, и выводим аяксом (подгружаем).
----------------------------------
ТЕМУ МОЖНО ЗАКРЫВАТЬ!
----------------------------------

Доброй ночи коллеги! Столкнулся с проблемой на аяксе!
Вот о чудо тестовая вещь! Для дальнейшего понимания о чём идёт речь, перейдите пожалуйста на сайт! И выполните инструкцию!

По умолчанию в селекте стоит "Работа", нажмите "показать".
Перед вами откроется табличка! Рядом с к нопкпой "показать" появиться фильтр" по дате начала (колонка подписана в таблице)! Если мы кликаем на кнопку "фильтр" и оба поля пусты, то нам выдаст "alert" что вы не заполнили дату! Если заполнить хоть одно поле или оба "С (дата) по (дата)", то нам выдаёт такое сообщение:

Код:
Notice: Undefined index: in_filter 
in /var/www/levili/data/www/***/ajax.php on line 6

Notice: Undefined index: out_filter 
in /var/www/levili/data/www/***/ajax.php on line 7

Notice: Undefined variable: q 
in /var/www/levili/data/www/***/ajax.php on line 14

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given 
in /var/www/levili/data/www/***/ajax.php on line 14
Вот вам предоставляю куски скриптов которые выполняют эти действия!
В js строка alert(data) показывает, что фильтр работает нормально, так как в дата приходит ответ отфильтрованый, но вот беда, подгрузка не выполняется, а выводит выше предоставленные ошибки! Я понимаю, что это за ошибки но как этого избежать?
И так js:
//---Фильтр работ по дате
		$( "#date_filter input" ).datepicker({
		   dateFormat: 'dd.mm.yy',
		});
		$('.filter').click(function(){
			start = $('#in_filter').val();
			finish = $('#out_filter').val();
			if((start == '') && (finish == '')){
				alert('Вы не выбрали дату!');
			}else{
				$.post("ajax.php",
					  {
						filter_date: "date",
						in_filter: start,
						out_filter: finish
					  },
					  onAjaxSuccess
					);
					 
					function onAjaxSuccess(data)
					{
					  $('#work').load('ajax.php', {filter_date:"date"});
					   alert(data);
					}
			}
		});
//---Фильтр работ по дате


А теперь PHP:
<?php
require $_SERVER['DOCUMENT_ROOT'].'/config.php';
$other = new Other;
//Филтр по дате начала!
if(isset($_POST['filter_date']) && $_POST['filter_date']=='date'){
	$in_filter = $_POST['in_filter'];
	$out_filter = $_POST['out_filter'];
		if(($in_filter != '') && ($out_filter == '')){
			$q = mysql_query("SELECT * FROM work WHERE datestart >= '".$in_filter."'");}
		elseif(($in_filter == '') && ($out_filter != '')){
			$q = mysql_query("SELECT * FROM work WHERE datestart <= '".$out_filter."'");}
		elseif(($in_filter != '') && ($out_filter != '')){
			$q = mysql_query("SELECT * FROM work WHERE datestart >= '".$in_filter."' AND datestart <= '".$out_filter."'");}
			while($row = mysql_fetch_assoc($q)){
?>
				<tr>
					<td><?=$row['id']?></td>
					<td><?=$row['name']?></td>
					<td><?=$row['stage']?></td>
					<td><?=$row['plot']?></td>
					<td><?=$row['face']?></td>
					<td><?=$row['datestart']?></td>
					<td><?=$row['datefinish']?></td>
					<td><input type="checkbox" name="work[]" value="<?=$row['id']?>"></td>
				</tr>
<?
			}
}

Последний раз редактировалось RAPOS, 22.02.2014 в 03:50.
Ответить с цитированием