Използвам следния код за създаване на дървовидна структура на категории и подкатегории
първо зареждам основните категории ето така:
както се виждам създавам динамично и няколко обекта ката <p>, <div> и <i> като всеки от тях има id, а <p> има и class. След кликване върху <p> чрез jquery взима id на <p> и го предавам към друг файл чрез ajax и се изпълнява друга заявка, която извежда подкатегории на кликната категория (<p>) и ми зарежда тези подкатегории в горе създадения динамичен <div>
ето това е заявката и jquery кода
JQuery
Заявката - файла get_sub_categories.php
Toзи код работи, наистина взима подкатегориите и ми ги извежда под основната категории. Както се вижда и от кода на get_sub_categories.php там също създавам динамично обекти <p class="sub">, <div> и <i> като те имат други id-та и после се опитвам да използвам горния начин като кликна върху подкатегориите да ми изведе техните подкатегории, но този път вече кода не работи и точно това се чудя защо. Eто и Jquery кода на подкатегориите
т.е. както се вижда при кликване въру class="sub" трябва да изпълнява някакво действие, но нищо не се случва и си мисля, че не инициализира елемент с такъв class="sub"
първо зареждам основните категории ето така:
Код:
<?php require_once('Connections/proekt.php');
mysql_select_db($database_proekt, $proekt);
$query_rs_oblekla = "SELECT id, name FROM categories WHERE parent_id = 1";
$rs_oblekla = mysql_query($query_rs_oblekla, $proekt) or die(mysql_error());
$row_rs_oblekla = mysql_fetch_assoc($rs_oblekla);
$totalRows_rs_oblekla = mysql_num_rows($rs_oblekla);
//$i=0;
if ($rs_oblekla)
{
do {
//$i=$i+1;
echo "<p class='bb' id=".'p'.$row_rs_oblekla['id']."><i id=".'i'.$row_rs_oblekla['id']." class='icon-folder-close'></i> " .$row_rs_oblekla['name']. "</p><div id=".'d'.$row_rs_oblekla['id']."></div>";
}
while ($row_rs_oblekla = mysql_fetch_assoc($rs_oblekla));
}
else
{
//echo "Проблем!";
}
?>
както се виждам създавам динамично и няколко обекта ката <p>, <div> и <i> като всеки от тях има id, а <p> има и class. След кликване върху <p> чрез jquery взима id на <p> и го предавам към друг файл чрез ajax и се изпълнява друга заявка, която извежда подкатегории на кликната категория (<p>) и ми зарежда тези подкатегории в горе създадения динамичен <div>
ето това е заявката и jquery кода
JQuery
Код:
<script>
$(document).ready(function () {
$('.bb').hover(function() {
$(this).css('cursor','pointer');
});
$('.bb').click(function() {
var parent_id=$(this).attr("id");
var current_div=parent_id.substr(1);
if(jQuery("#i"+current_div).attr('class') != undefined && jQuery("#i"+current_div).hasClass('icon-folder-close'))
{
$.ajax({
type: "POST",
url: "get_sub_categories.php",
data: "parent_id=" + current_div,
success: function(parent){
$("#i"+current_div).removeClass("icon-folder-close");
$("#i"+current_div).addClass("icon-folder-open");
$("#d"+current_div).html(parent);
},
error: function(){
//alert("Писмото не е изпратено!");
}
});
}
else
{
$("#i"+current_div).removeClass("icon-folder-open");
$("#i"+current_div).addClass("icon-folder-close");
$("#d"+current_div).text('');
}
});
});
</script>
Заявката - файла get_sub_categories.php
Код:
<?php require_once('Connections/proekt.php'); ?>
<?php
if(isset ($_POST['parent_id']))
{
$parent_id=$_POST['parent_id'];
mysql_select_db($database_proekt, $proekt);
$query_rs_oblekla = "SELECT id, name FROM categories WHERE parent_id = $parent_id";
$rs_oblekla = mysql_query($query_rs_oblekla, $proekt) or die(mysql_error());
$row_rs_oblekla = mysql_fetch_assoc($rs_oblekla);
$totalRows_rs_oblekla = mysql_num_rows($rs_oblekla);
if ($rs_oblekla)
{
do {
echo "<p class='sub' id=".'p1'.$row_rs_oblekla['id']."><i id=".'i1'.$row_rs_oblekla['id']." class='icon-folder-close'></i> ".$row_rs_oblekla['name']. "</p><div id=".'d1'.$row_rs_oblekla['id']."></div>";
}
while ($row_rs_oblekla = mysql_fetch_assoc($rs_oblekla));
}
else
{
//echo "Проблем!";
}
//style='text-indent: 12px; cursor: pointer;'
}
?>
Toзи код работи, наистина взима подкатегориите и ми ги извежда под основната категории. Както се вижда и от кода на get_sub_categories.php там също създавам динамично обекти <p class="sub">, <div> и <i> като те имат други id-та и после се опитвам да използвам горния начин като кликна върху подкатегориите да ми изведе техните подкатегории, но този път вече кода не работи и точно това се чудя защо. Eто и Jquery кода на подкатегориите
Код:
$('.sub').hover(function() {
$(this).css('cursor','pointer');
//alert($(this).attr("id"));
});
$('.sub').click(function() {
var parent_id2=$(this).attr("id");
alert(parent_id2);
var current_div2=parent_id2.substr(2);
if(jQuery("#i"+current_div2).attr('class') != undefined && jQuery("#i"+current_div2).hasClass('icon-folder-close'))
{
$.ajax({
type: "POST",
url: "get_sub_categories2.php",
data: "parent_id=" + current_div2,
success: function(parent2){
$("#i"+current_div2).removeClass("icon-folder-close");
$("#i"+current_div2).addClass("icon-folder-open");
$("#d"+current_div2).html(parent2);
},
error: function(){
}
});
}
else
{
$("#i"+current_div2).removeClass("icon-folder-open");
$("#i"+current_div2).addClass("icon-folder-close");
$("#d"+current_div2).text('');
//alert($(".sub").attr("id"));
}
});
$('#li1').click(function() {
$(".active").removeClass("active");
$(this).addClass("active");
$('#porachki').load("porachki.php");
});
$('#na').click(function() {
$(".active").removeClass("active");
$(this).addClass("active");
});
т.е. както се вижда при кликване въру class="sub" трябва да изпълнява някакво действие, но нищо не се случва и си мисля, че не инициализира елемент с такъв class="sub"