Перемещение первой страницы (cursebird или foursquare) - PullRequest
1 голос
/ 09 декабря 2010

Хорошо, так что, честно говоря, у меня большой опыт работы с php / mysql, я только начал изучать jQuery и очень мало, но некоторые с ajax.Так что взаимозаменяемое использование терминов ajax / jquery меня немного смущает.В любом случае, как следует из названия, у меня есть веб-сайт с 5 элементами, и я хочу, чтобы они были перемещены (то есть, если введен более новый элемент, удалите последний элемент и поместите новый сверху), они являются 5 наиболеепоследние элементы в таблице базы данных, теперь я закодировал jquery в качестве теста, поэтому он затухает последним, все движется вниз, освобождает место наверху и затухает в новом.Тем не менее, это тест, который имеет 0 взаимодействий с базой данных, а тот, который исчезает, находится просто в скрытом div.Итак, про jQuery позаботились.

Так что я не уверен, как это сделать, я подумал, может быть, стоит проверить ajax веб-сайт со страницы, на которой есть эти 5 элементов в необработанном формате, и если ониизменить потом обновить?

Не нужно искать ответ «plz code 4 me», просто концепцию того, как он будет работать, или некоторые ссылки, чтобы начать правильно.

edit - Кроме того, 5элементы ранжируются, поэтому, если я нажимаю на элемент 3, мне нужно, чтобы он без перерыва перемещался над элементом 2, поэтому возникает другая проблема, которую я предполагаю.

Ответы [ 2 ]

0 голосов
/ 02 января 2011

Основная идея заключается в том, что jQuery (набор инструментов javascript) делает запрос Ajax (это можно сделать с помощью raw javascript, но jQuery делает процесс намного НАСТОЛЬКО проще) к сценарию (в вашем случае PHP), который будет запрашиватьбазы данных, а затем вернуть данные.

Ваш базовый сценарий (для вызова и ответа), вероятно, будет выглядеть примерно так:

ajax-handler.php

<?php
    if( isset($_POST['get-store-updates']) ){
        $output = '';
        $sql = "SELECT ... LIMIT 5"; // Select the five store items
        $result = mysql_query($sql) or die(mysql_error());

        while( $row = mysql_fetch_assoc($result) ){
            $output .= // construct the HTML for your store items
        }

        echo $output;
    }
?>

index.php

function get_items(){
    $.ajax({
        url: 'ajax-handler.php',
        type: 'post',
        data: 'get-store-updates=true',
        success: function(myItems){
            $('#item-wrapper').html(myItems);
        }
    });
}

В этом примере что-то запускает функцию JavaScript get_items (), которая запускает ajaxвызов (запрос POST к ajax-handler.php с параметрами "get-store-updates = true", которые удовлетворяют "if (isset ($ _ POST ['get-store-updates']))", который я помещаю в PHP).Если запрос Ajax выполнен успешно (то есть он выполнил вызов, а не обязательно, чтобы скрипт PHP работал), вывод сценария PHP становится переменной javascript «myItems».С нашим ответом PHP, хранящимся в переменной javascript, мы можем легко заменить содержимое списка элементов (в данном случае, # item-wrapper), используя любое количество методов jQuery.

Конечно, если выРазработав это для большого сообщества, вы захотите подготовиться к высокой нагрузке на сервер.Если вы действительно хотите стать модным, посмотрите на методы передачи данных.

0 голосов
/ 09 декабря 2010

Ваше решение AJAX звучит разумно, но ...

Как часто будет обновляться база данных? Если вы получаете обновления каждые несколько минут, это будет работать нормально, если вы получаете 100 обновлений в секунду, тогда пользователи могут получить странные результаты.

Как часто вы планируете опрашивать сервер и сколько пользователей?

Просто пара мыслей.

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