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