Отображение изображений из MySQL через Jquery? - PullRequest
0 голосов
/ 23 октября 2011

Ну, вот и все! Я получаю массив изображений через запрос get из базы данных MySQL! и отображать его в виде слайд-шоу. работает ! но то, что я сейчас пытаюсь сделать, это отображать те же изображения с помощью Jquery.

    <?php require("Connections/db_con.php"); ?>
    <?php
    $title = "slideshow";
    $id = mysql_real_escape_string((int)$_GET['id']);
    $query_pic = "SELECT * FROM photos WHERE listing_id = $id ";
    $result_pic = mysql_query($query_pic , $db_con);
    $num_pic = mysql_num_rows($result_pic);
    $row_pic = mysql_fetch_array($result_pic);


    if($num_pic != 0) { 
        $image_set = array();
        $result = mysql_query("SELECT name FROM photos WHERE listing_id= $id");
        while($images = mysql_fetch_array($result)) {
            array_push($image_set, $images['name']);
        }
    }
    ?>

    <html>
    <head>
    <title><>php echo $title; ?></title>

    <link rel="stylesheet" href="stylesheets/styles/styles.css" media='all'/>
    <link href="stylesheets/layout.css" media="all"/>
    <link rel="stylesheet" href="stylesheets/styles/slideshow.css" media='all'/>
    <script type='text/javascript'>

    var photos  = new Array(<?php echo "'".implode("','", $image_set)."'"; ?>);
    var start   = 0; // array index of first slide
    var end     = <?php echo $num_pic -1; ?>; // array index of last slide
    var current = start;
    var doplay  = true; // do not play show automatically
    // skip to first slide
    function first() {
        current = 0;
        change();
    }

    // advance to next slide
    function previous() {
        current -= 1;
        if(current < start) current = end; // skip to last slide
        change();
    }

    // go back to previous slide
    function next() {
        current += 1;
        if(current > end) current = start; // skip to first slide
        change();
    }

    // skip to last slide
    function last() {
        current = end;
        change();
    }

    // change slide according to value of current
    function change() {
        document.photo.src = 'uploads/' + photos[current];
    }

    // play automatic slideshow
    function play() {
        if(doplay == true) {
            next();
            setTimeout(play, 2000); // call play() in 2.5 seconds
        }
    }

    // pause slideshow
    function pause() {
        doplay = false;
    }

    </script>
    </head>

    <body>

    <div id='container'>


    <div class='form'>

        <div id='photobox'>

            <img name='photo' src='uploads/<?php echo $image_set[0]; ?>' alt=''/><br /><br />
            <?php // echo "Total " . $num_pic . " photo(s) found" ; ?>

        </div>


    </div>

    </div>
    </body>
    </html>

Как я могу отображать те же самые полученные изображения с помощью слайд-шоу jquery, а не того, которое я показываю сейчас? .. Я старался, но каждый раз терпел неудачу .. :(

1 Ответ

1 голос
/ 23 октября 2011

Это:

var photos  = new Array(<?php echo "'".implode("','", $image_set)."'"; ?>);

должно быть

var photos = <?php echo json_encode($image_set) ?>;

json_encode позаботится обо всем форматировании / экранировании массива PHP в эквивалентный синтаксис Javascript, без опасности каких-либо метасимволов JS в одном или нескольких именах файлов, вызывающих ошибку синтаксиса JS.

Помимо этого, в чем конкретно проблема с jquery? Вы должны показать свой код jquery, так как именно в этом проблема. Показывать нам старый код бессмысленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...