Как интегрировать разбиение на страницы в несортированном списке jquery / ajax? - PullRequest
1 голос
/ 29 августа 2011

Вот моя проблема. Я перепробовал много разных вещей и понял, что могу приготовить яйцо прямо сейчас. Мне нужна ваша помощь.

Мне нужно добавить нумерацию страниц в div, где размещается контент. В частности, разбивайте списки на списки, которые создаются пользователями.

Это в моем index.php:

<div id="head">
<form name="postbar_add_post" id="postbar_add_post" method="post">
    <fieldset>
        <legend>What are you doing now? ...</legend>
        <input type="text" name="addcontentbox" id="addcontentbox" maxlength="200" />
        <input type="submit" name="addpost" value="Submit" class="submit" />
        </fieldset>
</form>
</div>

<div id="cuerpo"><ul id="wall"></ul></div> 

Когда текст отправляется, он использует следующий код JavaScript для публикации данных для этого div:

// This is the script to post whats typed on the input to the div called wall:
<script type="text/javascript">
    $.noConflict();
    jQuery(document).ready(function() {
        jQuery("form#postbar_add_post").submit(function() {
            var addcontentbox = jQuery('#addcontentbox').attr('value');
            if (addcontentbox.replace(/\s/g,"") == "") {
                return false;
            }
            jQuery.ajax({
                type: "POST",
                url: "postear.php",
                data: "addcontentbox=" + addcontentbox,
                success: function() {
                    jQuery("ul#wall").prepend("<li>"+addcontentbox+"</li>");
                    jQuery("ul#wall li:first").fadeIn();
                    document.postbar_add_post.addcontentbox.value = '';
                    document.postbar_add_post.addcontentbox.focus();
                }
            });
            return false; 
        });
    });
</script>

Я использую $.noConflict();, потому что я уже пытался разбить его на страницы с помощью другого плагина jquery, называемого Jpagination. К сожалению, нет хороших результатов. Нажмите здесь , если вы хотите проверить это.

Предыдущий код Ajax вызывает файл PHP для вставки сообщения в базу данных.

Это код php:

<?php
if(isset($_POST['addcontentbox'])) {
    // Connection to Database
    include('config.php');
    // NO Query Injection
    $message = mysql_real_escape_string($_POST['addcontentbox']);

    // echo
    $sql = 'INSERT INTO WALL (message) VALUES( "'.$message.'")';
    mysql_query($sql);
    echo $message;
}
else
{ 
    echo '0';
}
?> 

Итак, я попытался объединить нумерацию страниц с PHP, но я действительно заблудился. Затем я нашел в Интернете несколько сценариев для нумерации страниц, но это привело меня к худшему.

Так что мне действительно нужна помощь.

Может кто-нибудь сказать мне, как я могу добавить нумерацию страниц в несортированный список на index.php?

1 Ответ

0 голосов
/ 29 августа 2011

Ну, я до сих пор не на 100% понимаю, как вы хотите, чтобы это работало, но у меня есть идея.Допустим, вы хотите отобразить 10 сообщений на странице.Поэтому, когда страница загружается в первый раз, у нее будет 10 последних комментариев (вы можете сделать это, немного изменив свой SQL-запрос). Вы также захотите, чтобы ваш index.php принимал переменную страницы в строке запроса, чтобы вы зналикакую страницу загрузить.как index.php?page=1.Затем вы можете написать свой начальный запрос для извлечения сообщений следующим образом: (после выполнения $page = $_GET['page'];

"SELECT * FROM wall ORDER BY id DESC LIMIT $page*10, 10"

помимо извлечения последних сообщений, вы захотите узнать, сколько всего сообщений,так что вы знаете, сколько у вас страниц. Вы можете получить это также с помощью SQL-запроса.

"SELECT COUNT(*) FROM wall"

Теперь давайте вернемся к html. После перехода в новое опубликованное сообщение с помощью jQuery("ul#wall li:first").fadeIn(); вы можете исчезнуть.самое старое сообщение с jQuery("ul#wall li:last").fadeOut();

Чтобы составить список страниц, просто разделите общее количество сообщений на количество сообщений на странице, чтобы выяснить, сколько страниц вам нужно. Затем вы можете использоватьЦикл php for выводит несколько ссылок с номерами страниц вроде этого.

<? for($i=0; $i<$total_pages; $i++) { ?>
    <a href="index.php?page=<?=$i;?>"><?=$i;?></a>
<? } ?>

Поэтому, когда кто-то нажимает на одну из этих ссылок, он перезагрузит вашу страницу с правильными сообщениями.Конечно, с этим можно сделать гораздо больше, но я думаю, что это основная идея. Надеюсь, это поможет.

...