|
|
|
| Имеется страница на php готорая выводит список. Условный запрос Select distinct recipient from table
При клике на элемент списка из него раскрывается таблица со всеми данными из этой таблицы. Т.е. при клике передаётся значение recipient в обработчик, который вытягивает все данные и отдаёт результат.
Запрос: Select * from table where recipient={$_POST[recipient]}
Обработчик:
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
exit('Данные отправлены не через AJAX');}
if (isset($_POST['recipient'])) $recipient =$_POST['recipient'];
else $recipient = 0;
if ($recipient === 0) exit('Параметр содержит ошибку');
$db = mysql_connect('localhost', 'root', '')
or die('Не удалось установить подключение');
mysql_select_db('Calls') or die('Такой базы данных нет');
echo '<script type="text/javascript">
$(document).ready(function(){
$(":checkbox").click(
function () {
$.ajax({
type: "POST",
data:call_id:"id_call",
url: "checkbox.php"
});
});
});
</script>';
$phone_number=$_SESSION['phone_number'];
$query = "SELECT * FROM Calls WHERE phone_number=$phone_number AND Calls.date_of_call
BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY)
AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and Calls.Cost<>0 and recipient=".$recipient;
$result=mysql_query($query);
if($result)
{$o=array($tcalls);
while($myrow = mysql_fetch_array($result)){
if($myrow['personal']==1)
{$o[]="<td class='check'><input type=checkbox name='call_select[]' checked data-on='Personal' data-off='Business' value='$value' ></td>";}
else
{$o[]="<td class='check'><input type=checkbox name='call_select[]' data-on='Personal' data-off='Business' value='$value' ></td>";}
$o[]="<td>{$myrow['cost']}</td>";
$o[]="<td>{$myrow['recipient']}</td>";
$o[]="<td>{$myrow['date_of_call']}</td>";
$o[]="<td>{$myrow['time_of_call']}</td>";
$o[]="<td>{$myrow['duration']}</td>";
$o[]="<td>{$myrow['connection_type']}</td>";
$o[]="<td>{$myrow['volume']}</td>";
$o[]="<td>{$myrow['rouming']}</td>";
$o[]="</thead></tr>";
}$o[]="</tbody></table>";
$o[]="</form><br>";
echo implode('',$o);
}
|
И к ним прилепляются чекбоксы. Как к самой раскрывающейся строке, так и к каждому вложенному элементу таблицы. Подскажите как сделать чтобы при клике на чекбоксе строки, все чекбоксы списка отмечались автоматом и выполнялся запрос к БД на обновление поля personal. Т.е. если установить чек, то в бд значение заменить на 1, если снять, то заменить значение на 0 | |
|
|
|
|
|
|
|
|
для: cheops
(27.06.2011 в 11:58)
| | С использованием скрипта изhttp://softtime.ru/forum/read.php?id_forum=4&id_theme=81377
перестаёт работать раскрывание списков | |
|
|
|
|
|
|
|
для: McLotos
(27.06.2011 в 12:06)
| | С использованием скрипта изhttp://softtime.ru/forum/read.php?id_forum=4&id_theme=81377
перестаёт работать раскрывание списков
Кстати в моём первом сообщении ошибка. Это код не обработчика, а самой таблицы, а обработка именно чекбоксов происходит вот как
<?PHP
if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest') {
if (isset($_POST['call_id'])) {
$q1="select personal from calls where id_call=call_id";
$r1=mysql_query;
if personal=1 {$q="update Calls set personal=0 where id_call=call_id"}
else {$q="update Calls set personal=1 where id_call=call_id"}
}
}
?>
|
| |
|
|
|