:: Forum >> Version 1 >>

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>
    <
stylebodyhtml {margin:0pxpadding0pxoverflowhidden;} </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 {height100%; fontmenu;}
        .
active-column-{width200px;}
        .
active-column-{width80pxtext-alignright;}
        .
active-column-{width150px;}
        .
active-column-{width120px;}
        .
active-box-image {height16px;} /* for firefox 0.8 */
        
.active-selection-true a {colorhighlighttext}
        .
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.Image0);

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

    
//    provide cells and headers text
    
obj.setDataProperty("text", function(ij){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(ij){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