Доброго времени суток. Запутался в решении задачи, подскажите, пожалуйста, код, если не жалко.
Есть страничка в которую из БД выводится список через distinct, дальше при клике на ссылку под элементом списка из БД вытягиваются все данные связанные с этим элементом. Ну т.е. как-то так
Index.php Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
CODE ( javascript):
скопировать код в буфер обмена
<script type="text/javascript"> function f_show(client, elem) { var div = $("#div" + client); var link = $(elem); if (div.is(":hidden")) { if (div.text() == "") { div.load("ajax.php", { "client": client }, function(responseText, textStatus) { if (textStatus == 'error') {div.html("Ошибка при загрузке, нажмите ссылку ещё раз");} div.slideDown(300); link.html("Скрыть");}); } else {div.slideDown(300); link.html("Скрыть");} } else {div.slideUp(300); link.html("Показать");}} </script>
</head> <body> <?PHP if(isset($_SESSION['id'])) { $id =$_SESSION['id'];} else { echo "<p class='block' style='color:red'>You have come to a page without an argument!<a href='index.php'>Home</a></p>";} if (!preg_match("|^[\d]+$|", $id)) {echo "<p class='block' style='color:red'>Invalid request format! Check URL <a href='index.php'>Home</a></p>";} $shop = $_SESSION['shop']; if (empty($_SESSION['login'])) { echo "<p class='block' style='color:red'>User does not exist! Perhaps it was deleted.<a href='index.php'>Home</a></p>";} //если такого не существует echo "<h3>Personal user page: ".$_SESSION['lastname']." ".$_SESSION['firstname']."</h3>"; $query="SELECT distinct client FROM stat WHERE shop=$shop AND stat.buy_date BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY) AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and stat.Cost>0 order by client"; if($result) { echo "<h2><input type='checkbox'> ".$myrow[0]."</h2> <a href='#' onclick='f_show(".$myrow[0].", this); return false;'>Показать</a> <br>"; echo ' <div id="div'.$myrow[0].'" style="display:none;">'; echo "</div>\n";} } ?>
ajax.php
Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) { exit('Данные отправлены не через AJAX'); } if (isset($_POST['client'])) $client =$_POST['client']; else $client = 0; if ($client === 0 ) exit('Параметр содержит ошибку'); or die('Не удалось установить подключение');echo '<script type="text/javascript"> $(document).ready(function(){ $(":checkbox").click( function () { $.ajax({ type: "POST", data:shop_id:"id_shop", url: "checkbox.php" }); }); }); </script>'; $shop=$_SESSION['shop']; $query = "SELECT * FROM stat WHERE shop=$shop AND stat.buy_date BETWEEN DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), INTERVAL DAY(CURDATE())-1 DAY) AND DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY) and stat.Cost<>0 and client=".$client; if($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['client']}</td>"; $o[]="<td>{$myrow['buy_date']}</td>"; $o[]="{$myrow['description']}</td>"; $o[]="<td>{$myrow['volume']}</td>"; $o[]="</thead></tr>"; }$o[]="</tbody></table>"; $o[]="<br>"; } ?>
Какйо код должен быть в checkbox.php
Т.е. нужно чтобы при клике на чекбокс основного элемента, отмечались и все дочерние, даже если список не раскрывался. и чтобы в БД сразу отмечалось что элемент отметили(Отредактировано автором: 11 Августа, 2011 - 09:54:16)
|