3

I usually build my website's pages in .html and then, when everything works, I create the .php page for db and all the server-side stuff. 'Till now I hadn't any problem, but since when I'm trying to integrate some JS scripts in my pages, every time, the same script that in the .html sample works fine in the .php page doesn't work fine or doesn't work at all. Today I was "fighting" with the LightGallery script integrated in my gallery.php file. I tried everyhing possible before posting this question but whitout any success; I definitely need your help! This code in the .html page referres to the jQuery gallery and it works fine:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>...</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/gallery.css">
<link rel="stylesheet" type="text/css" href="test/css/lightGallery.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.js"></script>
</head>

<body>
  <!-- A jQuery plugin that adds cross-browser mouse wheel support. (Optional) -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.js"></script>

    <script src="test/js/lightgallery.js"></script>

    <!-- lightgallery plugins -->
    <script src="https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js"></script>
    <script src="test/js/lg-thumbnail.js"></script>
    <script src="test/js/lg-fullscreen.js"></script>
    <script src="test/js/lg-autoplay.js"></script>

<div id="header">
  ....
</div>

<div id="content">
  <div id="selector1">
  <div class="item" data-src="img/art.jpg">
      <figure>
        <img src="img/urban.jpg" />
      </figure>
  </div>
  <div class="item" data-src="img/art.jpg">
      <figure>
        <img src="img/urban.jpg" />
      </figure>
  </div>
  </div>
</div>

<div id="footer">
  .....
</div>

<script type="text/javascript">
    $('#selector1').lightGallery({
        selector: '.item'
    });
</script>

</body>
</html>

Since it worked, I integrated it in this .php file:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Marco Brigonzi">
<?php
/* check URL */
$query_url = $_SERVER['QUERY_STRING'];
$pageID = substr($query_url, 6);
?>
<title>Album: &quot;<?php $title = ucfirst($pageID); 
                          echo $title; ?>&quot; | Photo</title>
<link rel="stylesheet" type="text/css" href="css/main.css">
<link rel="stylesheet" type="text/css" href="css/gallery.css">
<link rel="stylesheet" type="text/css" href="script/lightgallery/css/lightGallery.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.js"></script>
<?php include("php/header-footer.php"); ?>
</head>

<body>
<?php include_once("php/analyticstracking.php"); ?>

 <!-- jQuery version must be >= 1.8.0; -->
    <!-- <script src="jquery.min.js"></script> -->

    <!-- A jQuery plugin that adds cross-browser mouse wheel support. (Optional) -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.js"></script>

    <script src="script/lightgallery/js/lightgallery.js"></script>

    <!-- lightgallery plugins -->
    <script src="https://cdn.jsdelivr.net/picturefill/2.3.1/picturefill.min.js"></script>
    <script src="script/lightgallery/js/lg-thumbnail.js"></script>
    <script src="script/lightgallery/js/lg-fullscreen.js"></script>
    <script src="script/lightgallery/js/lg-autoplay.js"></script>
    <script src="script/lightgallery/js/lg-hash.js"></script>
    <script src="script/lightgallery/js/lg-pager.js"></script>
    <script src="script/lightgallery/js/lg-zoom.js"></script>

<?
$current = "photo";
head($current);
?>

<div id="content">
  <div id="selector1">
<?php
/* check URL */
if($pageID == 'urban')
  {$pageCode = '1';}
elseif($pageID == 'art')
  {$pageCode = '2';}
elseif($pageID == 'street')
  {$pageCode = '3';}
elseif($pageID == 'nature')
  {$pageCode = '4';}
else
  {echo 'Error 0';}

/* connessione */
......connection values........
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) 
  {die("Connection failed: " . mysqli_connect_error());}

/* SET utf8 charset for special characters */
if (!mysqli_set_charset($conn, "utf8")) 
  {printf("Error loading character set utf8: %s\n", mysqli_error($conn));
    exit();
  } 

$sql_pic = 'SELECT * FROM photos WHERE album="'.$pageCode.'" ORDER BY rating DESC';
$result_pic = mysqli_query($conn, $sql_pic);
if (mysqli_num_rows($result_pic) > 0) 
  {
   while($row_pic = mysqli_fetch_assoc($result_pic)) 
     {
      echo '<div class="item" data-src="img/photo/'.$pageID.'/'.$row_pic["name"].'.jpg" alt="">
              <figure>
                  <img src="img/photo/'.$pageID.'/thumb/'.$row_pic["thumb"].'.jpg" alt="">
              </figure>
            </div>';
     }
  }
else
  {echo 'Error 1';}

mysqli_close($conn);
?>
  </div>
</div>

<?php foot(); ?>

<script type="text/javascript">
    $('#selector1').lightGallery({
        selector: '.item'
    });
</script>

</body>
</html>

And, of course, it stops working. I tried to put the JS scripts' calling at the end of the page but nothing changes. I've really no clue, 'cause the code is exactly the same! It's only integrated in a .php dynamic page.

[SOLVED] This time the problem was the capital letter in the CSS call: the server host renamed lightGallery.css in lightgallery.css so the CSS file was missing. Thanks everyone for the help!

Brigo
  • 1,086
  • 1
  • 12
  • 36
  • 1
    Did you try doing `lightGallery` after page loaded – passion Sep 10 '16 at 12:31
  • @passion You mean calling the script at the end of the page? If that yes I tried but it still doesn't work – Brigo Sep 10 '16 at 12:35
  • 2
    try wrapping your javascript code in `$(function(){})` – passion Sep 10 '16 at 12:39
  • 1
    Is there any error message in the Console ? check it using developer tools like in Chrome or Firebug – ArturoO Sep 10 '16 at 12:41
  • @passion & ArturoO I checked four times more the code and I find out that the problem was in the CSS call: in the .php file was "lightGallery.css" but the server host renamed it "lightgallery.css". Two hours lost for just a capital letter! Thank you so much guys for your help – Brigo Sep 10 '16 at 13:06

0 Answers0