Jump to content

Array[0] has no properties


neridaj

Recommended Posts

Hello,

 

I have a multidim array that is generated with php and I don't understand why/how to fix these errors:

 

Error: atrarr[0] has no properties

Error: atrarr[imgname] has no properties

 

I put an alert in the change_slide() function and it says the var imgname is undefined however, upon viewing the php output the var imgname is defined.

 

Here is the php output:

 

<!-- start hiding

var atrarr = new Array();

atrarr[0][0] ="01.jpg";

atrarr[0][1] =1600;

atrarr[0][2] =1063;

atrarr[1][0] ="02.jpg";

atrarr[1][1] =1600;

atrarr[1][2] =1063;

atrarr[2][0] ="03.jpg";

atrarr[2][1] =1600;

atrarr[2][2] =1063;

atrarr[3][0] ="04.jpg";

atrarr[3][1] =1600;

atrarr[3][2] =1063;

atrarr[4][0] ="05.jpg";

atrarr[4][1] =1600;

atrarr[4][2] =1063;

atrarr[5][0] ="06.jpg";

atrarr[5][1] =1600;

atrarr[5][2] =1063;

atrarr[6][0] ="07.jpg";

atrarr[6][1] =1600;

atrarr[6][2] =1063;

atrarr[7][0] ="08.jpg";

atrarr[7][1] =1600;

atrarr[7][2] =1063;

atrarr[8][0] ="09.jpg";

atrarr[8][1] =1600;

atrarr[8][2] =1063;

atrarr[9][0] ="10.jpg";

atrarr[9][1] =1600;

atrarr[9][2] =1063;

atrarr[10][0] ="11.jpg";

atrarr[10][1] =1600;

atrarr[10][2] =1063;

atrarr[11][0] ="12.jpg";

atrarr[11][1] =1600;

atrarr[11][2] =1063;

atrarr[12][0] ="13.jpg";

atrarr[12][1] =1600;

atrarr[12][2] =1063;

atrarr[13][0] ="14.jpg";

atrarr[13][1] =1600;

atrarr[13][2] =1063;

atrarr[14][0] ="15.jpg";

atrarr[14][1] =1600;

atrarr[14][2] =1063;

atrarr[15][0] ="16.jpg";

atrarr[15][1] =1600;

atrarr[15][2] =1063;

atrarr[16][0] ="17.jpg";

atrarr[16][1] =1600;

atrarr[16][2] =1063;

atrarr[17][0] ="18.jpg";

atrarr[17][1] =1600;

atrarr[17][2] =1063;

atrarr[18][0] ="19.jpg";

atrarr[18][1] =1600;

atrarr[18][2] =1063;

atrarr[19][0] ="20.jpg";

atrarr[19][1] =1600;

atrarr[19][2] =1063;

atrarr[20][0] ="21.jpg";

atrarr[20][1] =1600;

atrarr[20][2] =1063;

atrarr[21][0] ="22.jpg";

atrarr[21][1] =1600;

atrarr[21][2] =1063;

atrarr[22][0] ="23.jpg";

atrarr[22][1] =1600;

atrarr[22][2] =1063;

atrarr[23][0] ="24.jpg";

atrarr[23][1] =1063;

atrarr[23][2] =1600;

atrarr[24][0] ="25.jpg";

atrarr[24][1] =1063;

atrarr[24][2] =1600;

atrarr[25][0] ="26.jpg";

atrarr[25][1] =1600;

atrarr[25][2] =1063;

atrarr[26][0] ="27.jpg";

atrarr[26][1] =1063;

atrarr[26][2] =1600;

atrarr[27][0] ="28.jpg";

atrarr[27][1] =1063;

atrarr[27][2] =1600;

atrarr[28][0] ="29.jpg";

atrarr[28][1] =1600;

atrarr[28][2] =1063;

atrarr[29][0] ="30.jpg";

atrarr[29][1] =1600;

atrarr[29][2] =1063;

atrarr[30][0] ="31.jpg";

atrarr[30][1] =1600;

atrarr[30][2] =1063;

atrarr[31][0] ="32.jpg";

atrarr[31][1] =1600;

atrarr[31][2] =1063;

 

var imgnum = 09;

var imgname = "09.jpg";

var imgct = pictarr.length - 1;

function change_slide(direction) {

alert(imgname);

if(document.images) {

imgnum = imgnum + direction;

if(imgnum < imgct || imgnum > 0) {

document.getElementById("arrowprev").style.visibility = "visible"

document.getElementById("arrownext").style.visibility = "visible"

}

if(imgnum == imgct) {

document.getElementById("arrownext").style.visibility = "hidden"

}

if(imgnum == 0) {

document.getElementById("arrowprev").style.visibility = "hidden"

}

}

document.getElementById("slideshow").setAttribute("src", "members/test25/8337/" + atrarr[imgname][0])

document.getElementById("caption").innerHTML = atrarr[imgname]

}

// end hiding -->

 

Here is the php code:

 

   1. <?php
   2. $pictarr = get_imgarr();
   3. $atrarr = get_imgdim();
   4. $imgfolder = get_imgdir();
   5. $trimgnum = trim($_GET['in'], ".jpg");
   6. ?>  
   7.         <script type="text/javascript" charset="utf-8">
   8.         <!-- start hiding
   9.             <?php
  10.              echo 'var atrarr = new Array();' . "\n"; // define array in JavaScript
  11.                                     $count = count($pictarr);
  12.                                     for($i = 0; $i < $count; $i++) {
  13.                                         echo 'atrarr['. $i .']['. 0 .'] ="'. $pictarr[$i] .'";'."\n";
  14.                                         echo 'atrarr['. $i .']['. 1 .'] ='. $atrarr[$pictarr[$i]]["width"] .';'."\n";
  15.                                         echo 'atrarr['. $i .']['. 2 .'] ='. $atrarr[$pictarr[$i]]["height"] .';'."\n";
  16.                                     }
  17.             ?>
  18.  
  19.             var imgnum = <?php echo $trimgnum; ?>;
  20.             var imgname = "<?php echo $trimgnum .'.jpg'; ?>";
  21.             var imgct = pictarr.length - 1;
  22.             function change_slide(direction) {
  23.                 alert(imgname);
  24.                 if(document.images) {
  25.                     imgnum = imgnum + direction;
  26.                     if(imgnum < imgct || imgnum > 0) {
  27.                         document.getElementById("arrowprev").style.visibility = "visible"
  28.                         document.getElementById("arrownext").style.visibility = "visible"
  29.                     }
  30.                     if(imgnum == imgct) {
  31.                         document.getElementById("arrownext").style.visibility = "hidden"
  32.                     }
  33.                     if(imgnum == 0) {
  34.                         document.getElementById("arrowprev").style.visibility = "hidden"
  35.                     }
  36.                 }
  37.                 document.getElementById("slideshow").setAttribute("src", "<?php echo $imgfolder; ?>" + atrarr[imgname][0])
  38.                 document.getElementById("caption").innerHTML = atrarr[imgname]
  39.             }
  40.             // end hiding -->
  41.         </script>

Link to comment
https://forums.phpfreaks.com/topic/100412-array0-has-no-properties/
Share on other sites

try putting the variables inside of the function.

  19.             function change_slide(direction) {
  20.                 var imgname = "<?php echo $trimgnum .'.jpg'; ?>";
  21.                 var imgct = pictarr.length - 1;
  22.                 var imgnum = <?php echo $trimgnum; ?>;
  23.                 
  24.                 if(document.images) {
  25.                     imgnum = imgnum + direction;

 

hope this helps,

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.