2013-09-10 2 views
0

Мне нужно найти способ обновления div (id: box1_middle), когда меняются определенные условия в моей базе данных. У меня есть 5 'ячеек', если вам нравится, и в основном мне нужно представление каждой из этих 5 ячеек в одном div на моей странице. Если я должен был сделать это чисто с PHP я хотел бы сделать что-то вдоль линий:sql Запрос, а затем обновить Div, если условия выполнены - возможно, Ajax?

<?PHP if($query9_row['a_trailerarrival'] == NULL && $query10_row['a_endsort'] == NULL) 

    { 
echo "Cell 1 content --> Box 1"; 
    } 

    else if($query9_row['a_trailerarrival'] != NULL && $query10_row['a_endsort'] == NULL) 

    { 
echo "Cell 2 content --> Box 1"; 
    } 

    else if($query9_row['a_trailerarrival'] != NULL && $query10_row['a_endsort'] != NULL) 

    { 
echo "Cell 3 content > Box 1"; 
    } ?> 

Etc ..

Так в основном, я хочу, чтобы содержимое коробки 1, чтобы отобразить различные вещи, в зависимости от sql-запроса в скрипте php. Это работает абсолютно нормально, если я делаю это с чисто php, и когда страница загружается, в Box 1 отображается мой желаемый контент, но единственная проблема заключается в том, что я не хочу, чтобы пользователь обновлял страницу для изменения содержимого, я хочу, чтобы запрос выполняться каждую секунду, чтобы, если бы условие в дБ было изменено в течение этой секунды, что-то еще будет отображаться при следующем обновлении Div. Я попытался объединиться с jQuery, SetInterval(code, 1000);, но до сих пор мне не удалось!

Любые предложения были бы весьма полезными.

Заранее благодарен!

** EDIT **

Я использовал следующий JQuery:

<script type="text/javascript"> 
var auto_refresh = setInterval(
function() 
{ 
$('#box1_middle').load('b1_middle.php').fadeIn("slow"); 
}, 1000); 

Где содержимое b1_middle.php довольно много кода PHP в приведенной выше сценарии.

** EDIT 2 **

Ну в основном, для целей тестирования работает нормально только с вторя строку в PHP скрипт. Но для фактической цели я хочу, чтобы она отображала другой таймер обратного отсчета для каждого условия. например Таймер обратного отсчета 1 показывает, когда обе ячейки пустые, отсчет 2 таймера отображается при cell1! = Null & & CELL2 == NULL и т.д ..

Так я включил некоторые Javascript код обратного отсчета в мой сценарий, и это JQuery не загружает его.

Что было бы идеально, если бы я мог иметь содержимое div на моей странице, как: - Есть ли способ обновить DIV, не загружая в него внешний код? Просто буквально обновите контейнер?

+0

покажите свой код jQuery, который вы уже пробовали? –

+0

Я добавил jQuery к моему вопросу. Благодарю. –

+0

Есть ли у вас какие-либо ошибки? Это должно работать ... Возможно, вы захотите заменить свой setInterval на ответ, который я предоставил этому сообщению: http://stackoverflow.com/questions/18536274/ajax-setinterval-causing-browser-to-be-unresponsive/18536989 # 18536989, но хотя ваш код должен работать, просто может быть не очень стабильным. – Salketer

ответ

0

Я думаю, что вам нужна технология, которая называется «Comet»: http://en.wikipedia.org/wiki/Comet_(programming)#XHR_long_polling

обеспечить связь в реальном времени между веб-сервером и браузером.

Используя полную технологию «Comet» требует серьезных изменений в веб-сервер, так, чтобы сделать его легче вы можете использовать некоторые кометоподобные подходы, как эта: http://webscepter.com/simple-comet-implementation-using-php-and-jquery/ некоторой дополнительной информация здесь: Simple comet example using php and jquery

Смежные вопросы