Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP+AJAX+Mysql динамическая обработка чекбоксов
 
 автор: McLotos   (27.06.2011 в 11:54)   письмо автору
 
 

Имеется страница на 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)   письмо автору
 
   для: McLotos   (27.06.2011 в 11:54)
 

Возможно вас заинтересуют следующие темы
http://softtime.ru/forum/read.php?id_forum=3&id_theme=81350
http://softtime.ru/forum/read.php?id_forum=4&id_theme=81359
http://softtime.ru/forum/read.php?id_forum=4&id_theme=81377

  Ответить  
 
 автор: McLotos   (27.06.2011 в 12:06)   письмо автору
 
   для: cheops   (27.06.2011 в 11:58)
 

С использованием скрипта изhttp://softtime.ru/forum/read.php?id_forum=4&id_theme=81377
перестаёт работать раскрывание списков

  Ответить  
 
 автор: McLotos   (27.06.2011 в 12:15)   письмо автору
 
   для: 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={$q="update Calls set personal=0 where id_call=call_id"}
else {
$q="update Calls set personal=1 where id_call=call_id"}
}
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования