Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/98: Рейтинг темы: голосов - 98, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21

Динамическое обновление контента по таймеру. Как передать значения параметров?

01.11.2013, 11:37. Показов 18111. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,


Нашел такой скрипт для динамического обновления контента без перезагрузки страницы.
Скрипт отрабатывает правильно, все обновляется по таймеру, но есть небольшая проблема.
На странице show.php есть таблица с радио-кнопками (input type=radio), кнопки редактирования (input type=submit) и ссылки.
Если запустить файл show.php, то все отрабатывает нормально, а при динамическом обновлении кнопки и ссылки не работают, и значения не передаются.
Как это побороть не понятно.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">  
<script type="text/javascript" src="jquery.js"></script>  
</head>  
  
<body>  
       
    <div id="content"></div>  
       
    <script>  
        function show()   
        {   
            $.ajax({   
                url: "show.php",   
                cache: false,   
                success: function(html){   
                    $("#content").html(html);   
                }   
            });   
        }   
       
        $(document).ready(function(){   
            show();   
            setInterval('show()',1000);   
        });   
    </script>  
       
</body>  
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2013, 11:37
Ответы с готовыми решениями:

[AJAX] Динамическое обновление по таймеру. SOS
День добрый, форумчане. С джавой незнаком, но есть необходимость в написании одного скрипта. Буду очень благодарен тем, кто сможет хоть чем...

Динамическое обновление контента
Был подключаемый блок с помощью include. Меня в нем не устраивало то, что если нужно посмотреть что добавилось, надо вручную обновлять...

Динамическое красивое обновление контента
Собственно есть аякс запрос который каждые допустим 5 секунд обновляет контент. Все работает по тех части все нормально, но вопрос такой,...

21
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
01.11.2013, 15:55
Все события для подгружаемых элементов должны быть привязаны делегированно с использованием on
Например
JavaScript
1
2
3
 $("body").on('click','#btn1',function () {
// тут код для кнопки
});
Посмотрите разницу на таком примере (запустите со строкой 1, а затем со строкой 2 )
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<html>
  <head>
    <title>ON - для подгруженного контента</title>
    
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />    
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    
 <script type="text/javascript">
$(document).ready(function(){
    
    
$("#btn1").click(function () { alert(1)});  // или строка  1
 
// $("body").on('click','#btn1',function () { alert(1)}); // или строка 2
 
$('#btn_new').click(function(){ // загрузка новой кнопки
                $('#block').html('<input type="button" id="btn1" value="Новая кнопка"/>')
    });         
 });/*end  ready*/
 </script>
<style>
 
 
</style>    
  </head>
  <body style="margin:40px;">
<div id="block"><input type="button" id="btn1" value="Старая  кнопка"/></div>
 <input type="button" id="btn_new" value="Загрузить новую кнопку"/> 
  </body>
</html>
1
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
01.11.2013, 18:52
убрав js обработку с формы.. пусть субмитется и обновляется страница, если не хотите так - см. пред. ответ
1
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
03.11.2013, 22:03  [ТС]
Спасибо, с кнопками более менее разобрался, но осталась одна проблема.
В контенте, который динамически обновляется по таймеру, выводится таблица, в которой один из столбцов это радиокнопки, чтобы можно было выбрать запись для редактирования, или других манипуляций с ней.
У меня не получается передать значение этой радиокнопки (id записи), а без этого запись для редактирования не выбирается.


HTML5
1
2
3
<TD bgcolor = <?=$color?> width="1"></TD> 
    <TD bgcolor = <?=$color?>><?= nl2br( htmlspecialchars( $row['dannye'], ENT_QUOTES ) ) ?>&nbsp </TD>
    <TD bgcolor = <?=$color?> width="19%"><input type="radio" name=id value="<?= $row['id'] ?>"> </TD>
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
03.11.2013, 22:21
а что выдаёт $_POST['id'] ?? при отправке ?
я конечно со своей кукушки, но попробуйте name=id взять в ковычки name="id"..
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
03.11.2013, 22:37  [ТС]
Может я не так выразился.
Есть файл show.php. в нем выводится таблица в которой три столбца (1-для выделения цветом, 2-информация,
3-радиокнопка)
Этот файл динамически обновляется (использую скрипт описанный выше)
Как работать с кнопками я разобрался, а как получить значение радиокнопки не понятно.
Сам файл show.php полностью рабочий, но он сам автоматически и без перезагрузки страницы не обновляется.
С этой формой работают два человека, и я хочу сделать так, чтобы при изменении одним, у другого тоже отображались изменения.
Вариант обновления через meta или js по таймеру не подходит, т.к. на странице много записей и при перезагрузке браузер автоматически возвращает страницу в начало.
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
03.11.2013, 23:37
так.. обычно что бы достать значение радио кнопки используют:
$('input[name=radioName]:checked').val();

что бы уловить переключение:
$('body').on('change', 'input[name=radioName]', function(){...});

Вот, а решить твою задачу можно:
при заходе идёт ajax запрос страницы нужной (которая генерируется из базы данных или из файла берёт переменную)..
Далее при нажатии или изменении инпута (или отправки формы) отправляется post запрос, который где-то обновляет эту переменную (либо в базе либо в файле записывает новую)..
Далее идёт опять запрос к странице и выводиться уже с новым значением и у 1-го и у 2-го пользователя.
Вопрос обновления данных решается путём получения страницы через setInterval ..

ЗЫ: Я правда не знаю какие у тебя возвращаются данные из пост. запроса, но если нужно изменить вид, то можно получать только этот параметр и скажем добавлять класс, мол выводить таблицей или списком - можно менять заменяя класс..
Ну а если добавляется содержимое на сайт, то тогда выводить контент полностью..

Добавлено через 5 минут
Напиши какая цель у тебя в получении и отправлении данных ( т.е. какие именно поля или что у тебя заменяется на что ?)
1
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
04.11.2013, 23:43  [ТС]
Спасибо. Попробую.

Цель отправки и получения данных, это работа с таблицей.
Вообще задумка - это программа Шеф - Секретарь.
Есть два секретаря, которые вносят данные в таблицу, а шеф это все видит.
На странице таблица с 3-мя колонками (выделение цветом, инфа, радиокнопка) и кнопки (добавить, удалить, редактировать)
В случае необходимости возможно какие-то записи выделяются цветом, т.е. нажимают на радиокнопку, потом на нужный submit, и далее в зависимости от того на какую кнопку нажали, то с этой записью и происходит. Я понимаю, что в принципе ничего такого сверх естественного, но я не очень силен в js и ajax, поэтому возникли сложности.
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
05.11.2013, 23:51  [ТС]
С радиокнопками разобрался. Большое спасибо.
С одной кнопкой submit тоже все работает, но у меня их на странице 6, нашел вариант когда для каждой кнопки нужно отдельно написать запрос, но это по моему не рационально.
Если я правильно понял, то значение переменной присваивается по id кнопки, а не по полю name.
Есть ли вариант присвоить переменной action значение той кнопки, на которую я нажимаю.
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
06.11.2013, 01:16
Цитата Сообщение от vvfili Посмотреть сообщение
С радиокнопками разобрался. Большое спасибо.
С одной кнопкой submit тоже все работает, но у меня их на странице 6, нашел вариант когда для каждой кнопки нужно отдельно написать запрос, но это по моему не рационально.
Если я правильно понял, то значение переменной присваивается по id кнопки, а не по полю name.
Есть ли вариант присвоить переменной action значение той кнопки, на которую я нажимаю.
так, во первых смотри - все кнопки субмита у тебя должны быть в <form> ...
Далее для каждой кнопки ты задаёшь класс (или атрибут по которому будешь улавливать субмит).
Я бы сделал так:
<input type="submit" data-submit="action_name" value="Сохранить" />
и в jQuery:
JavaScript
1
2
3
4
5
6
7
$('body').on('click', '[data-submit]', function(){
var form = $(this).parents('form');
var action = $(this).data('action');
form.find('input[name="action"]').val(action);
form.submit();
return false;
})
и одну обработку на субмит формы ( как видишь action подставляется в нужное поле, значит нам нужно просто засубмитеть и получить данные ( а обработка будет проходить в php и в зависимости от action будут выбираться те поля которые нам нужны)
JavaScript
1
2
3
4
5
$('body').on('submit','form', function(){
var data = $(this).serialize();
{тут ajax запрос (в который передаётся data) и получение данных с подставлением}
return false;
});
Надеюсь ответил на твой вопрос
1
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
06.11.2013, 21:56  [ТС]
Спасибо, попробую
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
09.11.2013, 12:51  [ТС]
Приветствую,

Чего-то с кнопками у меня никак не срастается. Два дня ковыряю, но заставить работать так и не получилось.
Тренируюсь на "кошках", никак не могу понять, что не так.

И еще вопрос, если я передаю данные через serialize, то значения радиокнопки, и полей username и msg тоже передаются или их нужно отдельно передавать.

Файлы в аттаче
Вложения
Тип файла: rar test.rar (1.7 Кб, 13 просмотров)
0
Coding is art
Эксперт JS
540 / 423 / 154
Регистрация: 04.09.2013
Сообщений: 1,066
09.11.2013, 14:39
Цитата Сообщение от vvfili Посмотреть сообщение
Приветствую,

Чего-то с кнопками у меня никак не срастается. Два дня ковыряю, но заставить работать так и не получилось.
Тренируюсь на "кошках", никак не могу понять, что не так.

И еще вопрос, если я передаю данные через serialize, то значения радиокнопки, и полей username и msg тоже передаются или их нужно отдельно передавать.

Файлы в аттаче
заметил у тебя ошибки, во превых нужно в <form> указать method, тебе подойдёт POST
Далее в файле обработки тебе нужно вытаскивать значения из $_POST переменной..
т.е. делай следущее:
HTML5
1
2
3
4
5
6
7
<form method="POST" action="file.php">
<!-- file.php - название файла который будет обрабатывать запрос -->
<input type="text" name="username" />
<!-- в php обработке будет фигурировать только name параметр, так что он обязателен!! остальные по уссмотрению -->
<input type="hidden" name="action" value="delete" />
<input type="submit" value="Отправить" />
</form>
файл file.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if( ! isset( $_POST ) )
die(); // прекращаем работу, если попали сюда на прямую или не переданы POST данные (данные формы)
$username = $_POST['username']; // тут ['username'] это атрибут name в инпуте // нуждается в доп. проверке (а вдруг поле пустое?)
$action = $_POST['action'];
if( 'delete' == $action ) {
// здесь если параметр в input[name="action"] == 'delete'
// выполняем условие 'delete'
} elseif( 'create' == $action) {
// здесь если параметр в input[name="action"] == 'create'
// Менять их можно при помощи js - я писал ранее как можно сделать
// выполняем условие 'create'
}
Отвечая на первый вопрос: да, все поля что в форме будут автоматически переданны ( т.е. и чекбоксы и радио и т.п. и т.д. минимальное условие для передачи должен быть задан name="..." )

Так же посмотрел твой js - у тебя там написано не пойми что..
$('..').submit(function(){}); и $('body').on('submit', '...', function(){}) это одно и то-же, только 2-й вариант будет работать и с формами, которые вставились через ajax после загрузки страницы..

Как вариант тебе нужно добавить чекбокс при переключении которого будет меняться name="action" на 'delete' или 'create' или эе ты можешь сделать селект (или радио кнопку) с выбором действия, т.е. что-то типо такого:
HTML5
1
2
3
4
<select name="action">
<option value="create">Создать</option>
<option value="delete">Удалить</option>
</select>
И в php $_POST['action'] будет равен тому value в option который выбрал пользователь..

Тебе нужно больше учить js и php!!

PS: т.к. у тебя отправляется ajax запрос то methode и action к <form> можешь не дописывать.. но нужно указывать method: 'post' в js..
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
13.11.2013, 17:02  [ТС]
Спасибо за критику.
Цитата Сообщение от muxahuk1214 Посмотреть сообщение
Тебе нужно больше учить js и php!!
С js я вообще практически не работал. Сейчас умные книги читаю, но без умных людей всеравно разобраться тяжело.
Я не понимаю, что в этом коде не так. При нажатии на кнопку страница перезагружается, а не должна, и записи не добавляется, и не удаляются.
Вариант с селектами неподходит, т.к. нужно будет на одну операцию больше делать.
У меня две кнопки add и delete
При нажатии на add, значение action=add должно передаться в action.php
При нажатии на delete, значение action=delete должно передаться в action.php

HTML5
1
2
3
4
<td>
<input type="submit" id="btn1" name="action" value="add">
<input type="submit" id="btn2" name="action" value="delete">
</td>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// загрузка сообщений из БД в контейнер messages
    function show_messages()
    {
        $.ajax({
            url: "show.php",
            cache: false,
            success: function(html){
                $("#messages").html(html);
            }
        });
        
    }
            
    $(document).ready(function(){
 
        show_messages();
        $('body').on('click', '#btn1', function(){
        var form = $(this).parents('myForm');
        var action = $(this).data('action');
        form.find('input[name="action"]').val(action);
        form.submit();
        return false;
        });
        $('body').on('click', '#btn2', function(){
        var form = $(this).parents('myForm');
        var action = $(this).data('action');
        form.find('input[name="action"]').val(action);
        form.submit();
        return false;
        });
        // контроль и отправка данных на сервер в фоновом режиме при нажатии на кнопку "отправить сообщение"
        $('body').on('submit','myForm', function(){
            var data = $(this).serialize();
            $.ajax({
                type: "POST",
                url: "action6.php",
                data: data,
                success: function(msg){
                    show_messages();
                }
            });
            
            return false;
        });
        });
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
    include ("dbconnect.php");
 
    // получаем переменные из формы
    $username=$_POST['username'];
    $msg=$_POST['msg'];
    $action=$_POST['action'];
    $id=$_POST['id'];
    
    if ('add' == $action)
    {
        // добавление данных в БД 
        $sql="INSERT INTO gb(username, dt, msg) VALUES ('$username', NOW(), '$msg')";
        $r=mysql_query ($sql);
    }
    
    if ('delete' == $action)
    {
        // удаление базы гостевой
        $sql="DELETE * FROM gb where id = '". addslashes($id) ."'";
        $r=mysql_query($sql);
    }
    
    header("Location: index11.html");
    exit;
?>
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
13.11.2013, 18:52
Страница перезагружается так как js код с ошибками, а значит он не исполняется
Например
JavaScript
1
2
 var form = $(this).parents('myForm');
        var action = $(this).data('action');
Что такое myForm ? Если класс формы, то нужно писать .myForm, если это id формы, тогда #myForm
Что есть .data('action') ? Возвращение заданного значения action для кликнутой кнопки, а Вы установили это значение ранее? И зачем оно Вам и что это за несуществующее значение? Зачем оно?
JavaScript
1
 form.submit();

Отправка формы с перезагрузкой. Т.е. для кнопки вы отменяете стандартное действие, а форму всё равно отправляете с перезагрузкой submit()

Если, как Вы пишите, нужно при клике по кнопке передать лишь add или delete, то сделайте кнопки такими
HTML5
1
2
<input type="button" class="btn"  value="add">
<input type="button" class="btn"  value="delete">
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
$('body').on('click', '.btn', function(){ // при клике по любой кнопке с таким классом
       
        var action = $(this).val();// получаем val кликнутой кнопки
 
 $.post( 
       'action.php',
        {action:action}, // передаём или add или delete
        function (data){
                // тут код который  выполняется после получения ответа
}
       );       
        });
1
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
13.11.2013, 23:39  [ТС]
Спасибо. Попробовал. Не получилось.
Все написал как сказали, но при нажатии на кнопки ничего не происходит.
Я в панике. Неужели я так плох.

файл index12.php
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<form id="myForm" >
<table border="0">
    <tr>
        <td width="160">
            Имя пользователя:
        </td>
        <td>
            <input id="username" name="username" style="width: 300px;">
        </td>
    </tr>
    <tr>
        <td width="160" valign="top">
            Сообщение:
        </td>
        <td>
            <textarea id="msg" name="msg" style="width: 300px;"></textarea>
        </td>
    </tr>       
    <tr>
        <td width="160">
            &nbsp;
        </td>
        <td>
            <input type="button" class="btn"  value="add">
                                              <input type="button" class="btn"  value="delete">
        </td>
    </tr>
</table>
</form>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function show_messages()
    {
        $.ajax({
            url: "show.php",
            cache: false,
            success: function(html){
                $("#messages").html(html);
            }
        });
        
    }
    $(document).ready(function(){
 
        show_messages();
        
        // контроль и отправка данных на сервер в фоновом режиме при нажатии на кнопку 
            
            $("body").on('click', '.btn', function(){ // при клике по любой кнопке с таким классом
                 
                var action = $(this).val();// получаем val кликнутой кнопки
                var name = $("#username").val();
                var msg  = $("#msg").val();
                var id = $('input[name=id]:checked').val();
                $.post( 
                        'action6.php',
                        {'action':action,
                         'username':name,
                         'msg':msg,
                         'id':id}, 
                        function (data){
                                        show_messages();
                                        }
                        );
            });         
        });
</script>
Файл action6.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    include ("dbconnect.php");
 
    // получаем переменные из формы
    $username=$_POST['username'];
    $msg=$_POST['msg'];
    $action=$_POST['action'];
    $id=$_POST['id'];
    
    if ('add' == $action)
    {
        // добавление данных в БД 
        $sql="INSERT INTO gb(username, dt, msg) VALUES ('$username', NOW(), '$msg')";
        $r=mysql_query ($sql);
    }
    if ('delete' == $action)
    {
        // удаление базы гостевой
        $sql="DELETE * FROM gb where id = '". addslashes($id) ."'";
        $r=mysql_query($sql);
    }
    header("Location: index12.php");
    exit;
?>
Значение радиокнопки беру из файла show.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!-- блок отображения сообщений-->
<?php
    include ("dbconnect.php");
    
    $c=0;
    $r=mysql_query ("SELECT * FROM gb ORDER BY dt DESC"); // выбор всех записей из БД, отсортированных так, что самая последняя отправленная запись будет всегда первой.
    while ($row=mysql_fetch_array($r))  // для каждой записи организуем вывод.
    {
        if ($c%2)
            $col="bgcolor='#f9f9f9'";   // цвет для четных записей
        else
            $col="bgcolor='#f0f0f0'";   // цвет для нечетных записей
            
            ?>
            <table border="0" cellspacing="3" cellpadding="0" width="90%" <? echo $col; ?> style="margin: 10px 0px;">
            <tr>
                <td width="150" style="color: #999999;">Имя пользователя:</td>
                <td><?php echo $row['username']; ?></td>
            </tr>
            <tr>
                <td width="150" style="color: #999999;">Дата опубликования:</td>
                <td><?php echo $row['dt']; ?></td>
            </tr>   
            <tr>
                <td colspan="2" style="color: #999999;">---------------------------------------------------------------</td>
            </tr>       
            <tr>
                <td colspan="2">
                    <?php echo $row['msg']; ?>
                    <br>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="radio" name=id value="<?= $row['id'] ?>">
                    <br>
                </td>
            </tr>
            
            </table>
            <?php
        $c++;
    }
    
    if ($c==0) // если ни одной записи не встретилось
        echo "Гостевая книга пуста!<br>";
    
 
?>
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
15.11.2013, 15:40
Вот это лишнее
PHP
1
2
header("Location: index12.php");
    exit;
А так работает, кроме удаления сообщения. Удалять нужно без звёздочки *
PHP
1
2
$sql="DELETE  FROM gb WHERE id = '$id'";
        $r=mysql_query($sql);
Важно !
Данные нужно записывать в переменные только после обработки
PHP
1
2
3
4
$username=mysql_real_escape_string($_POST['username']);
    $msg=mysql_real_escape_string($_POST['msg']);
    $action=mysql_real_escape_string($_POST['action']);
    $id=abs((int)($_POST['id']));
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
15.11.2013, 16:33  [ТС]
Спасибо.

Внес правки, но всеравно при нажатии на кнопки ничего не происходит

Почему-то данная конструкция не хочет работать.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$("body").on('click', '.btn', function(){ // при клике по любой кнопке с таким классом
                 
                var action = $(this).val();// получаем val кликнутой кнопки
                var name = $("#username").val();
                var msg  = $("#msg").val();
                var id = $('input[name=id]:checked').val();
                $.post( 
                        'action8.php',
                        {'action':action,
                         'username':name,
                         'msg':msg,
                         'id':id}, 
                        function (data){
                                        show_messages();
                                        }
                        );
            });
Решил проблему с помощью вот такого решения. Незнаю на сколько оно правильное, но кнопки заработали и значения все передаются.

JavaScript
1
2
3
$(".btn").bind('click', function(){ // при клике по любой кнопке с таким классом
                                                
        });
Можно еще маленький вопрос, у меня есть файл show.php, который выводит результаты.
Я его никак не могу конвертировать в UTF-8.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!-- блок отображения сообщений-->
<?php
    include ("dbconnect.php");
    $c=0;
    $r=mysql_query ("SELECT * FROM gb ORDER BY dt DESC"); // выбор всех записей из БД, отсортированных так, что самая последняя отправленная запись будет всегда первой.
    while ($row=mysql_fetch_array($r))  // для каждой записи организуем вывод.
    {
        if ($c%2)
            $col="bgcolor='#f9f9f9'";   // цвет для четных записей
        else
            $col="bgcolor='#f0f0f0'";   // цвет для нечетных записей
?>
            <table border="0" cellspacing="3" cellpadding="0" width="90%" <? echo $col; ?> style="margin: 10px 0px;">
            <tr>
                <td width="150" style="color: #999999;">Имя пользователя:</td>
                <td><?php echo $row['username']; ?></td>
            </tr>
            <tr>
                <td width="150" style="color: #999999;">Дата опубликования:</td>
                <td><?php echo $row['dt']; ?></td>
            </tr>   
            <tr>
                <td colspan="2" style="color: #999999;">---------------------------------------------------------------</td>
            </tr>       
            <tr>
                <td colspan="2">
                    <?php echo $row['msg']; ?>
                    <br>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="radio" name=id value="<?= $row['id'] ?>">
                    <br>
                </td>
            </tr>
            
            </table>
            <?php
        $c++;
    }
    if ($c==0) // если ни одной записи не встретилось
        echo "Гостевая книга пуста!<br>";
?>
0
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
15.11.2013, 16:50
On должно работать начиная с версии 1.7
На счёт конвертации в utf-8, посмотрите
1) в какой кодировке сохранён файл
2) в файле подключения к бд укажите кодировку
PHP
1
mysql_query("SET NAMES 'utf8'");
3) в файле .htaccess запишите строку
AddDefaultCharset UTF-8
4) посмотрите в какой кодировке бд и таблица
1
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 21
15.11.2013, 16:59  [ТС]
Спасибо. Попробую.
А чем отличается on от bind?
Я не силен в JS. До этого практически с ним не работал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2013, 16:59
Помогаю со студенческими работами здесь

AJAX Динамическое обновление контента
доброго времени суток есть такой вот скрипт &lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt; &lt;div...

Динамическое обновление контента на простом примере
Друзья, помогите пожалуйста. Необходимо динамически показывать изменения на сайте. Изучаю javascript и добрался до ajax думал все смогу...

Динамическое обновление контента данными из json
Интернет изобилует следующими примерами на тему AJAX и jQuery с использованием php: &lt;html&gt; &lt;head&gt; &lt;meta...

Динамическое обновление контента аля Facebook, Vkontakte и прочее
Всем привет! Подскажите в каком направлении почитать / посмотреть. Задача реализовать обновление какого-либо контента примерно как...

Проверка на xmlhttprequest для ajax, динамическое обновление контента без перезагрузки страницы
Доброго времени суток уважаемые форумчане, Облазил и перерыл весь интернет но конкретного ответа на свой вопрос не нашел, объяснений и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru