Page 1 of 1

if statement inside ul and li

Posted: Thu Jul 26, 2007 4:31 am
by sandy1028
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Hi,

I am finding the problem with if statement....
This code is to sort the tree when clicked on header.....
If i click on the header all the sorted and unsorted values also gets display....

Please help me with this

Code: Select all

<style type="text/css">
#containerul, #containerul ul{
  text-align:left;
  margin:0; /* Removes browser default margins applied to the lists. */
  padding:0; /* Removes browser default padding applied to the lists. */
}

#containerul li{
  margin:0 0 0 30px; /* A left margin to indent the list items and give the menu a sense of structure. */
  padding:0; /* Removes browser default padding applied to the list items. */
  list-style-type:none; /* Removes the bullet point that usually goes next to each item in a list. */
}

#containerul .symbols{ /* Various styles to position the symbols next to the items in the menu. */
  float:left;
  width:12px;
  height:1em;
  background-position:0 50%;
  background-repeat:no-repeat;
}

#containerul .borders {
border-left-color: blue;
border-right-width: 0px; border-left-width: 3px;
padding-right: 0px; padding-left: 0px;
}

ul { border-left: 1px dotted #666;

 }
li.live { background: transparent url(node.png) no-repeat 0px 10px; }
ul li ul { display: none; }
li.live { li.live {  background: transparent url(node.png) no-repeat 0 10px; }
li.live ul { display: block; }

</style>

<script type="text/javascript">

var temp, temp2, cookieArray, cookieArray2, cookieCount;
function initiate(){
  cookieCount=0;
  if(document.cookie){
    cookieArray=document.cookie.split(";");
    cookieArray2=new Array();
    for(i in cookieArray){
      cookieArray2[cookieArray[i].split("=")[0].replace(/ /g,"")]=cookieArray[i].split("=")[1].replace(/ /g,"");
    }
  }
  cookieArray=(document.cookie.indexOf("state=")>=0)?cookieArray2["state"].split(","):new Array();
  temp=document.getElementById("containerul");
  for(var o=0;o<temp.getElementsByTagName("li").length;o++){
    if(temp.getElementsByTagName("li")[o].getElementsByTagName("ul").length>0){
      temp2 = document.createElement("span");
   temp2.className = "symbols";
//temp2.className = "borders";
      temp2.style.backgroundImage =  (cookieArray.length>0)?((cookieArray[cookieCount]=="true")?"url(minus.png)":"url(plus.png)"):"url(plus.png)";
      temp2.onclick=function(){
        showhide(this.parentNode);
        writeCookie();
      }
      temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild)
      temp.getElementsByTagName("li")[o].getElementsByTagName("ul")[0].style.display = "none";
      if(cookieArray[cookieCount]=="true"){
        showhide(temp.getElementsByTagName("li")[o]);
      }
      cookieCount++;
    }
    else{
      temp2 = document.createElement("span");
        temp2.className = "symbols";
//      temp2.className = "borders";
 temp2.style.backgroundImage = "url(page.png)";
      temp.getElementsByTagName("li")[o].insertBefore(temp2,temp.getElementsByTagName("li")[o].firstChild);
    }
  }
}
function showhide(el){
  el.getElementsByTagName("ul")[0].style.display=(el.getElementsByTagName("ul")[0].style.display=="block")?"none":"block";
// el.getElementsByTagName("tree")[0].style.display=(el.getElementsByTagName("tree")[0].style.display=="block")?"none":"block";
   el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(minus.png)":"url(plus.png)";
 el.getElementsByTagName("span")[0].style.backgroundImage=(el.getElementsByTagName("ul")[0].style.display=="block")?"url(minus.png)":"url(plus.png)";


}

function writeCookie(){ // Runs through the menu and puts the "states" of each nested list into an array, the array is then joined together  and assigned to a cookie.
  cookieArray=new Array()
  for(var q=0;q<temp.getElementsByTagName("li").length;q++){
    if(temp.getElementsByTagName("li")[q].childNodes.length>0){
      if(temp.getElementsByTagName("li")[q].childNodes[0].nodeName=="SPAN" &&  temp.getElementsByTagName("li")[q].getElementsByTagName("ul").length>0){
        cookieArray[cookieArray.length]=(temp.getElementsByTagName("li")[q].getElementsByTagName("ul")[0].style.display=="block");
      }
    }
  }
  document.cookie="state="+cookieArray.join(",")+";expires="+new Date(new Date().getTime() + 365*24*60*60*1000).toGMTString();
}
</script>

<?
$lines = file('./phonedb.txt');

                foreach ($lines as $line) {
                $text_line = explode(":" , $line);

$text_array[]=array('name'=>$text_line[0], 'address'=>$text_line[1],'age'=>$text_line[2], 'email'=>$text_line[3],'mobile'=>$text_line[4],'residence'=>$text_line[5], 'key'=>$key);


foreach ($text_array as $key => $row) {
$name[$key]  = $row['name'];
$address[$key] = $row['address'];
$age[$key] = $row['age'];
$email[$key] = $row['email'];
$mobile[$key] = $row['mobile'];
$residence[$key] = $row['residence'];
}
$id = $_GET['id'];

switch ($id) {
case "name":
        array_multisort($name, SORT_ASC,SORT_STRING, $text_array);
        break;
case "address":
         array_multisort($address,SORT_ASC, $text_array);
        break;

case "age":
        array_multisort($age, SORT_ASC, SORT_NUMERIC, $text_array);
         break;

case "email":
         array_multisort($email, SORT_ASC, $text_array);
         break;

case "mobile":
         array_multisort($mobile, SORT_ASC,SORT_NUMERIC, $text_array);
         break;

case "residence":
        array_multisort($residence,SORT_ASC, SORT_NUMERIC, $text_array);
        break;
}
}

for($i=0; $i<sizeof($text_array); $i++) {
//echo "<ul>";


echo "<li>".$text_array[$i]['name']."</li>";
echo "<li>".$text_array[$i]['address']."</li>";

//echo  "</tr>";
}

?>


<?
echo "<html>";
echo "<body bgcolor=\"#FFF0FF\" text=\"#000000\">";
$lines = file('phonedb.txt');
echo "<ul id=\"containerul\"><li class=\"live\">View Tree";

//echo "<a href=\"tree.php?id=name\">Name</a>";

echo "<ul class=\"dottedline\"><li class=\"live\"><a href=\"tree.php?id=name\">Name</a>";

echo "<ul>";
                foreach ($lines as $line) {
                    $text_line = explode(":",$line);


echo "<li>--$text_line[0]</li>";
}
if($id=="name")
{

for($i=0; $i<sizeof($text_array); $i++) {
echo "<li>".$text_array[$i]['name']."</li>>";
}
}
}
echo "</ul></li>";

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

sort with javascript

Posted: Fri Jul 27, 2007 1:01 pm
by yacahuma
I am not sure if this is what you want but I needed to sort a table and found this site



http://www.kryogenix.org/code/browser/sorttable/


just by adding this to your page you get instant sorting by columns.

BTW check your code. although not mandatory you should put your javascript code inside head

Re: if statement inside ul and li

Posted: Fri Jul 27, 2007 2:39 pm
by superdezign
sandy1028 wrote:Hi,

I am finding the problem with if statement....
This code is to sort the tree when clicked on header.....
If i click on the header all the sorted and unsorted values also gets display....

Please help me with this
If the posted link is not what you're after, you're going to need to be a lot more specific. Most of us (including me) don't feel like reading an entire document looking for someone else's error. Pinpoint a general area of interest, and post that snippet, and you'll likely get more answers.