aaloo 12 Junior Poster in Training

this is my javascript code for infinte carausal which is working fine but it is not taking more than 36 entries .

<script type="text/javascript">
$.fn.infiniteCarousel = function () {
function repeat(str, num) {
return new Array( num + 1 ).join( str );
}
return this.each(function () {
var $wrapper = $('> div', this).css('overflow', 'hidden'),
$slider = $wrapper.find('> ul'),
$items = $slider.find('> li'),
$single = $items.filter(':first'),
singleWidth = $single.outerWidth(),
visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
currentPage = 1,
pages = Math.ceil($items.length / visible);
// 1. Pad so that 'visible' number will always be seen, otherwise create empty items
if (($items.length % visible) != 0) {
$slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
$items = $slider.find('> li');
}
// 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
$items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
$items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
$items = $slider.find('> li'); // reselect
// 3. Set the left position to the first 'real' item
$wrapper.scrollLeft(singleWidth * visible);
// 4. paging function
function gotoPage(page) {
var dir = page < currentPage ? -1 : 1,
n = Math.abs(currentPage - page),
left = singleWidth * dir * visible * n;
$wrapper.filter(':not(:animated)').animate({
scrollLeft : '+=' + left
}, 500, function () {
if (page == 0) {
$wrapper.scrollLeft(singleWidth * visible * pages);
page = pages;
} else if (page > pages) {
$wrapper.scrollLeft(singleWidth * visible);
// reset back to start position
page = 1;
}
currentPage = page;
});
return false;
}
$wrapper.after('<a class="arrow back">&lt;</a><a class="arrow forward">&gt;</a>');
// 5. Bind to the forward and back buttons
$('a.back', this).click(function () {
return gotoPage(currentPage - 1);
});
$('a.forward', this).click(function () {
return gotoPage(currentPage + 1);
});
// create a public interface to move to a specific page
$(this).bind('goto', function (event, page) {
gotoPage(page);
});
});
};
$(document).ready(function () {
$('.infiniteCarousel').infiniteCarousel();
});
</script>

and this my php code to give entries

 $data = mysql_query("SELECT * FROM entries ORDER BY id DESC") or die(mysql_error()); 
    while($info = mysql_fetch_array( $data )) 
    { 
    ?>
    <li > 
    <?php 
     echo "<img width=\"240\" height=\"240\" alt=\"Wonky Buildings\"  src=\"/WebsiteScrolling/pages/images/".$info['photo']."\"/>" ;
    $str =$info['title']; 

    $arr1 = str_split($str,40);

    $i = count($arr1);

    for($j=0;$j<$i;$j++)
    {
    echo "<div id=\"titl\">$arr1[$j]</div>";

    }
    $str1 = str_replace(" ","_",$str);
    $str1 = preg_replace("/[^a-zA-Z0-9\s]/ ","_",$str1);
    echo "<a class=\"readmore\"  href=\"/WebsiteScrolling/pages/$str1.php\" target=\"_blank\">MORE</a><br />
     <g:plusone annotation=\"inline\" href=\"/WebsiteScrolling/pages/$str1.php\" ></g:plusone>";
    ?>

    </li>
    <?php   } ?>



i was working with this from the last one year . now this carausal is not takiing more than 36 entries.It should take infinte entries.When i add a new entry , the last entry does not appear in the carausal. Please somebody help me . i am in deep trouble now :(

Dani AI

Generated

Short diagnostic for and anyone who lands here later: when an “infinite” carousel suddenly stops accepting new items the cause is almost always malformed HTML, timing when sizes are measured, or a server-side limit/caching issue — not the carousel math itself. The plugin relies on a clean UL/LI structure and correct element widths to compute pages and cloning; if the DOM is repaired by the browser or images are still loading the visible/item counts will be wrong.

Checklist and quick tests

  • Inspect the generated HTML (View Source) and count the total LI elements the server emitted. Also inspect the live DOM in DevTools to verify every LI is still inside the UL (browser HTML fixes can move or drop nodes). Validate the markup with the W3C validator (https://validator.w3.org/).
  • Confirm there is no server-side LIMIT or trimming routine; verify the SELECT returns the expected row count on the server side (check the query result count).
  • Check for repeated IDs or invalid elements in the loop that builds each LI. Repeated unique IDs and invalid tag syntax make the browser correct the DOM and can hide items.

Common fixes that resolve the “36 items” symptom

Other pointers

  • Check PHP regex and function usage (pregreplace patterns can fail if the pattern string has stray characters; see PHP manual: https://www.php.net/manual/en/function.preg-replace.php). Also be aware of deprecated mysql* calls on newer PHP versions (https://www.php.net/manual/en/function.mysql-query.php).
  • For debugging, log the number of LI nodes and the computed “visible” count in the carousel initialization and re-validate after fixes. If the generated HTML contains all rows but the carousel still hides the last one, browser-side repair or timing is the usual culprit.
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.