:: Forum >>

How to display No data found.

I am listing files and folders using php. some of the folder does not have files. So when I click on the folder without any files, it gives me javascript error because there is no data in myData.
M Sharma
Friday, May 7, 2004
Can you please let me know, how can i get around with the javascript error if there is no data in myData.
M Sharma
Friday, May 7, 2004
Can you please tell more about the error:
- where exactly does it happen,
- how the page looks like?
Alex (ActiveWidgets)
Sunday, May 9, 2004
heck I have no idea where I am but just put in something like


if (myData)
dothisthingthatyouwantdone


Just throw in and if statement seeing if the varialbe name exists (now I will find out where the heck I am :) - google brought me in basically to this page)
Zach
Sunday, May 9, 2004
Hi Alex,

I am listing files and folders. I am dynamically putting values in to
<script>var myData = [];</script> using PHP. Folders name are link, when clicked on them it goes to next level. But when the folder don't have any sub folder or files, then there is no value in <script>var myData = [];</script>, it gives me javascript error.
So what I want is if there is no values in myData as above, then what should I do, so that javascript error does not come up.
<html>
<head>
    <title>Browse Archive</title>
    <style> body, html {margin:0px; padding: 0px; overflow: hidden;} </style>

    <!-- ActiveWidgets stylesheet and scripts -->
    <link href="library/runtime/styles/xp/grid.css" rel="stylesheet" type="text/css" ></link>
    <script src="library/runtime/lib/grid.js"></script>
    
    <!-- grid format -->
    <style>
        .active-controls-grid {height: 100%; font: menu;}
        .active-column-0 {width: 200px;}
        .active-column-1 {width: 80px; text-align: right;}
        .active-column-2 {width: 150px;}
        .active-column-3 {width: 120px;}
        .active-box-image {height: 16px;} /* for firefox 0.8 */
        .active-selection-true a {color: highlighttext}
        .active-selection-true .active-column-0 a {color: #000000}
        .active-row-highlight {background-color: #ebeadb}
        .active-row-highlight .active-row-cell {background-color: #ebeadb}
    
</style>
    
</head>
<body>
<?

$qpath = trim($HTTP_GET_VARS["path"]);

if ($qpath == ""){
    $qpath = "I:\\\\asp_dev";
}
else{
    $qpath = trim($HTTP_GET_VARS["path"]);
}

$qfrom = stripslashes(trim($HTTP_GET_VARS["from"]));
echo $qpath;
function getDirList ($dirName) {
$d = dir($dirName);
            
     echo "<script>";
    
     echo "var myData = [";
     while($entry = $d->read()) {
    
if ($entry != "." && $entry != ".." && $entry != "ICON_" && $entry != "Icon_") {
     $path = $dirName."\\".$entry;
             if (is_dir($dirName."\\".$entry)) {
                            
                 $count = $count +1;
                    $folder_name = $entry;
                    $path_f = $dirName."\\\\".$entry;
                ?>

                    ["<a href='fb_right.php?from=self&path=<?echo $path_f?>'><?echo $folder_name?></a>", "", "<? echo filetype($path)?>", "<?echo date ('F d Y H:i:s', filemtime($path)) ?>", "folder"],
                <?
             }else {
            
                 $count = $count +1;
                 $file_name = $entry;
                 ?>

                 ["<?echo $file_name?>", "<? echo ROUND(filesize($path)/1024)?>KB", "<?echo filetype($path)?>", "<?echo date ("F d Y H:i:s", filemtime($path))?>", ""],
                 <?
}
}
}
    
     echo "];";
     echo "</script>";
    
     return $count;
$d->close();
}

//<a href=echo $dirName."/".$file_name target='_blank'>

$row = getDirList($qpath);
                                        
?>


    <!-- grid data -->
    <script>

    // create ActiveWidgets Grid javascript object
    var obj = new Active.Controls.Grid;

    // set the first column template to image+text
    obj.setColumnTemplate(new Active.Templates.Image, 0);

    // set number of rows/columns
    obj.setRowProperty("count", <?echo $row?>);
    obj.setColumnProperty("count", 4);

    // provide cells and headers text
    obj.setDataProperty("text", function(i, j){return myData[i][j]});
    //-------obj.setDataProperty("image", function(i, j){return myData[i][4]});
    
    // sort by size so that folders are at the top
    obj.sort(2, "ascending");
    
    // provide column headers
    obj.setColumnProperty("texts" , ["Name", "Size", "Type", "Date Modified"]);

    // set column/row headers width/height
    obj.setColumnHeaderHeight("20px");
    obj.setRowHeaderWidth("0px");
    
    // add tooltips to the first column template and data model
    obj.getColumnTemplate(0).setAttribute("title", function(){return this.getItemProperty("tooltip")});
    obj.defineDataProperty("tooltip", function(i, j){return "Type: " + myData[i][2] + "\nDate Modified: " + myData[i][3] + "\nSize: " + myData[i][1]});
    
    // onmouseover and onmouseout effect
    
    var row = obj.getTemplate("row");
    row.setEvent("onmouseover", "mouseover(this, 'active-row-highlight')");
    row.setEvent("onmouseout", "mouseout(this, 'active-row-highlight')");
    
    // set right click
    obj.setEvent("oncontextmenu");
    
    // write grid html to the page
    document.write(obj);
    
    
</script>
    
</body>
</html>
M Sharma
Sunday, May 9, 2004
Sorry I put PHP code, but looks like that is giving some error, but, as you can see above in function getDirList ($dirName), i dynamically populate myData with values file and folder details using PHP. But some times there is no values in myData as there is no file or folder. So when the page is loaded there is no value in myData, so it gives javascript error.

I hope this help.

Thanks
M Sharma
Sunday, May 9, 2004
Hey Alex,

Dont Worry. I have fixed the problem.
Following was the problem. The second parameter of obj.setRowProperty has to be 0, if there is no data....

//set number of rows/columns
obj.setRowProperty("count", 0);
obj.setColumnProperty("count", 4);

Many Thanks
M Sharma
Monday, May 10, 2004

This topic is archived.


Back to support forum

Forum search