Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чат на jQuery, не работает только в IE
 
 автор: Den*s   (22.01.2012 в 19:38)   письмо автору
 
 

Здравствуйте.
Решил написать простенький чат на скорую руку, во всех браузерах работает нормально, а вот в IE никак
Не обновляется и всё ...
Вот код
index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Chat</title>

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $("#id_submit").bind("click", function() {
            if ($.trim($("#id_name").val()) === "")
            {
                alert('Пожалуйста, заполните поле "Автор"');
                return false;
            }
            if ($.trim($("#id_comment").val()) === "")
            {
                alert('Пожалуйста, заполните поле "Сообщение"');
                return false;
            }
            
            $("#id_submit").css("display", "none");
            
            $("#info").load("addmes.php",
                            {name: $("#id_name").val(),
                             comment: $("#id_comment").val()},
                             $("#id_submit").css("display", "block"));
        })
        
    });
    
    function runMultiple()
    {
        $("#info").load("addmes.php");        
    }

    
    var timerMulti = window.setInterval("runMultiple();", 4000);

</script>

</head>

<body>


<div id="info" style="width:500px; height:300px; background:#CCC; overflow:scroll;">
<? //include_once("addmes.php"); ?>
</div>


<p>
  <input type="text" name="id_name" id="id_name" />
</p>
<p>
  <textarea name="id_comment" id="id_comment" cols="45" rows="5"></textarea>
</p>
<p>
  <input type="submit" name="id_submit" id="id_submit" value="Отправить"  />
</p>
</body>
</html>


addmes.php

<?
 header
("Content-type: text/html; charset=utf-8");
 
 include_once(
"config/config.php");
 
 
mysql_query("SET NAMES 'utf8'"); 
  
 
$name = @mysql_real_escape_string($_POST["name"]);
 
$comment = @mysql_real_escape_string($_POST["comment"]);
 
 if (
$name && $comment)
 {
     
$query "INSERT INTO tableChat (DateCreate, login, mes, status)  VALUES ( NOW(), '$name', '$comment', 'show') ";
        if(!
mysql_query($query)) exit(mysql_error());
 }
 
 
$query mysql_query("SELECT * FROM tableChat WHERE status = 'show' ORDER BY id DESC  ");
 if (
mysql_num_rows($query))
 {
     while(
$mes mysql_fetch_array($query))
     {
         print 
"<div>{$mes['DateCreate']} "htmlspecialchars($mes["login"], ENT_QUOTES) ."</div>
         <div>"
htmlspecialchars($mes["mes"], ENT_QUOTES) ."</div><hr>";
     }
 }
 
?>


Где может быть подводный камень для IE, не могу понять ...

P. S. Взял за основу пример из книги "PHP на примерах (2 издание)"

  Ответить  
 
 автор: cheops   (22.01.2012 в 19:52)   письмо автору
 
   для: Den*s   (22.01.2012 в 19:38)
 

Хм... обычно такие проблемы в IE бывают, если вместо PHP-скрипт присылает ему данных в кодировке, отличной от UTF-8, но я гляжу тут очень жестко в этом плане задано... Попробуйте отладочные alert-ы в JavaScript натыкать - он вообще запускает JavaScript и если да, то до какой точки заходит? Во втором параметре load() тоже можно задать функцию, которая выполняется после отработки AJAX-запроса. Её тоже можно задействовать в отладке.

  Ответить  
 
 автор: Den*s   (22.01.2012 в 20:12)   письмо автору
 
   для: cheops   (22.01.2012 в 19:52)
 

Судя по всему проблема в
window.setInterval("runMultiple();", 4000);
вроде как IE её не любит.
Отсюда вопрос который был у меня с самого начала, есть ли в jQuery механизм для запуска функции через определённый промежуток времени, типа аналога этого куска


function runMultiple()
    {
        $("#info").load("addmes.php");        
    }

    
    var timerMulti = window.setInterval("runMultiple();", 4000);

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования