Поиск:

Ответ в темуСоздание новой темы Создание опроса
> надо призвать пользователей пользоваться кнопкой.. ..для решенного\нерешенного вопроса 
:(
    Опции темы
sergejzr
Дата 18.3.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Да, AJAX или нет, в принципе пофиг. Ведь пока не нажмёшь, не узнаешь. Но сделать можно. 2man мне прислал немного кода. Я начал кое что на AJAXу пробовать, но это глобально и для отправки и редактирования сообщениё тоже. Есть трудности. Нет времени smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 18.3.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 79
Всего: 290



Цитата(sergej.z @ 18.3.2006, 13:39 Найти цитируемый пост)
Да, AJAX или нет, в принципе пофиг. Ведь пока не нажмёшь, не узнаешь.

Не думаю.. Ведь может быть и другая ситуация. Нажмешь один раз и больше нажимать не хочешь smile В принципе меня с ДСЛ - это даже немного напрягает. Но я думаю, что со временем мы все улучшим и не стоит по этому поводу сильно переживать.
AJAXом все равно займемся.. Есть хорошая либа для поддержки AJAX, которая мультибраузерна и хорошо работает. Весит она около 10Кб(яваскрипт).
PM WWW   Вверх
sergejzr
Дата 18.3.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Я тоже пробовал тут либу. Весит много, а траблы такие же, как и ссамописным кодом на 20 строк. Траблы из за кодировки. Я вообще считаю, что в нашем случае кроссбразерность не на первом месте. Лучше пусть поддерживает ИЕ с 6.0, FF с 1.0.7 и Оперы с 8.0, зато весит в 5-6 раз меньше.
Как я уже говорил, в кодировке траблы. Остальное ерунда. Я мучался, довёл до состояния, где вроде всё ОК, так оказалось, что не учёл переходы строк, а они обрезаются. Но это было решение "на коленке" нужно конечно же что-то серьёзное.
А где можно скрипт посмотреть?



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Wowa
Дата 18.3.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: 79
Всего: 290



Цитата(sergej.z @ 18.3.2006, 15:23 Найти цитируемый пост)
Лучше пусть поддерживает ИЕ с 6.0, FF с 1.0.7 и Оперы с 8.0, зато весит в 5-6 раз меньше.

Конечно.



Цитата(sergej.z @ 18.3.2006, 15:23 Найти цитируемый пост)
Как я уже говорил, в кодировке траблы.

Можно пример? Я не слышал ни о каких траблах с кодировкой. Где проявляется?
PM WWW   Вверх
sergejzr
Дата 18.3.2006, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



В ымт у меня сейчас есть вариантик, но заливать не хочу, чтобы не ломать ничего. А с кодировкой так. Отправляешь месагу методом пост, а на сервере кавардак приходит. Я по всякому пытался - пофиг.
Знаю точно, что перекодировывает он в UTF-8 но там же ещё urlencoding сперва делать надо..

Нашёл потом функцию перекодировки в нете, но вот переходы строк съедаются. В обратную сторону (с сервера на клиент) никаких траблов конечно нет.

Короче, если кто простенький примерчик клиент-сервер написал бы (работающий) где с кодировкой траблов нет, то можно было бы подумать о внедрении.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ciber SLasH
Дата 19.3.2006, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(sergej.z @ 18.3.2006, 20:34 Найти цитируемый пост)
Короче, если кто простенький примерчик клиент-сервер написал бы (работающий) где с кодировкой траблов нет, то можно было бы подумать о внедрении.

index.htm:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.21.330'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: Отсылка данных с помощью XmlHttpRequest</title>
<script type='text/javascript'>
var XmlHttp;

/*** Инициализация XmlHttpRequest-а ***/
function init() {
var is_IE = false;
    if (window.XMLHttpRequest) {        // Mozilla
        try {
            XmlHttp = new XMLHttpRequest();
        } catch (e) {
            XmlHttp = false;
        }
    } else if (window.ActiveXObject) {    // IE
        try {
            XmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
        } catch (e) {
            try {
                XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    XmlHttp = false;
                }
            }
        }
        is_IE = true;
    }
    if (XmlHttp) {
        if (is_IE) XmlHttp.onreadystatechange = parseRequest;
        else XmlHttp.onload = parseRequest;
        return true;
    } else return false;
}
/*** Обработка ответа ***/
function parseRequest() {
    if (XmlHttp.readyState == 4) {
        if (XmlHttp.status == 200) {
            /*    Пришёл ответ, обрабатываем либо через XmlHttp.responseText,
                либо через XmlHttp.responseXML.documentElement */
        } else {
            // Обрабатываем ошибки: XmlHttp.status, XmlHttp.statusText
        }
    }
}
/**
* Отправка запроса
* @param1 string url    — URL серверного скрипта;
* @param2 array aData    — массив данных в виде строк
**/
function sendQuery(url, aData) {
    XmlHttp.open('POST', url, true);
    if (aData) {
        var query = "";
        for (var i = 0; i < aData.length; i++) {
            query += "data[]="+aData[i]+"&";
        }
        query = query.substr(0, query.length-1);
        XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        XmlHttp.send(query);
    } else XmlHttp.send(null);
}

onload = function () {
    if (init()) {
        sendQuery("test.php", ["Данные...", "And other data..."]);
    }
}
</script>
</head>

<body>
</body>
</html>

test.php:
Код

<?php
$query = iconv("UTF-8", "cp1251", print_r($_POST, true));
$fp = fopen('./logs.htm', 'w');
$content = '<pre>'.$query.'</pre>';
fwrite($fp, $content);
fclose($fp);
?>

PM   Вверх
sergejzr
Дата 19.3.2006, 03:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Ciber SLasH, о, спасибо. Складно получилось. Посмотрим, как получится внедрить...
Добавлено @ 03:19
Вот только проблема со знаками & осталась. После них всё обрезается...


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Ciber SLasH
Дата 19.3.2006, 04:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(sergej.z @ 19.3.2006, 03:17 Найти цитируемый пост)
Вот только проблема со знаками & осталась. После них всё обрезается...

Если вызывать запрос с такими параметрами:
Код

sendQuery("test.php?param1=bla%20bla&param2="+encodeURIComponent("баба Яга"), ["Данные...", "And other data..."]);

то нужно изменить test.php так:
Код

<?php
$query = iconv("UTF-8", "cp1251", print_r($_POST, true));

$urlParams = array();
$a = explode('&', $_SERVER['QUERY_STRING']);
for ($i = 0; $i < count($a); $i++) {
    $b = explode('=', $a[$i]);
    $urlParams[$i][0] = $b[0];    // parametr
    $urlParams[$i][1] = iconv("UTF-8", "cp1251", urldecode($b[1]));    // value
}

$content =
    "<pre>\n".
    $query.
    "<hr>\n".
    print_r($urlParams, true).
    "</pre>";

$fp = fopen('./logs.htm', 'w');
fwrite($fp, $content);
fclose($fp);
?>

PM   Вверх
Ciber SLasH
Дата 19.3.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Ну так что, sergej.z, мой пример постом выше, решил проблему с обрезанием после & ?
PM   Вверх
2man
Дата 19.3.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 5
Всего: 71



Цитата(sergej.z @ 18.3.2006, 14:39 Найти цитируемый пост)
Но сделать можно. 2man мне прислал немного кода. Я начал кое что на AJAXу пробовать, но это глобально и для отправки и редактирования сообщениё тоже. Есть трудности. Нет времени

Что именно не понятно?
Часть яваскрипта или php-кода?


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 19.3.2006, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 35
Всего: 360



Это ведь методом Get отошлётся... А надо бы Post.
2man Было бы неплохо работающий макет со страничкой форума сделать.
Нго в принципе чувствую, что скоро что нибудь выйдет.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 20.3.2006, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 5
Всего: 71



sergej.z, попробую у себя собрать на локале все в единое целое и посмотреть результат.
В прошлый раз когда я это дело не мог разобраться никак с кнопкной smile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
Ciber SLasH
Дата 20.3.2006, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(sergej.z @ 19.3.2006, 20:26 Найти цитируемый пост)
Это ведь методом Get отошлётся... А надо бы Post.

Вобще-то то был комбинированный запрос.
Вот только POST:
index.htm
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content='text/html; charset=windows-1251'>
<meta name="Generator" content='EditPlus 2.21.330'>
<meta name="Author" content='Ciber SLasH'>
<title>JavaScript :: Отсылка данных с помощью XmlHttpRequest</title>
<script type='text/javascript'>
var request = [ ["param1", "bla bla"], ["param2", "какая-то чепуха"] ];
var XmlHttp;

/*** Инициализация XmlHttpRequest-а ***/
function init() {
var is_IE = false;
    if (window.XMLHttpRequest) {        // Mozilla
        try {
            XmlHttp = new XMLHttpRequest();
        } catch (e) {
            XmlHttp = false;
        }
    } else if (window.ActiveXObject) {    // IE
        try {
            XmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0");
        } catch (e) {
            try {
                XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    XmlHttp = false;
                }
            }
        }
        is_IE = true;
    }
    if (XmlHttp) {
        if (is_IE) XmlHttp.onreadystatechange = parseRequest;
        else XmlHttp.onload = parseRequest;
        return true;
    } else return false;
}
/*** Обработка ответа ***/
function parseRequest() {
    if (XmlHttp.readyState == 4) {
        if (XmlHttp.status == 200) {
            /*    Пришёл ответ, обрабатываем либо через XmlHttp.responseText,
                либо через XmlHttp.responseXML.documentElement */
            resultDIV.innerHTML = XmlHttp.responseText;
        } else {
            // Обрабатываем ошибки: XmlHttp.status, XmlHttp.statusText
            resultDIV.innerHTML = "<b>XmlHttp.status: </b>"+XmlHttp.status+"<br>"+
                "<b>XmlHttp.statusText: </b>"+XmlHttp.statusText;
        }
    }
}
/**
* Отправка запроса
* @param1 string url            — URL серверного скрипта;
* @param2 string queryString    — строка запроса
**/
function sendQuery(url, queryString) {
    if (!isXmlHttpInit) {
        alert("Объект XmlHttmRequest не удалось создать !!");
        return false;
    }
    XmlHttp.open('POST', url, true);
    if (queryString) {    // если нужно передать параметры
        XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        XmlHttp.send(queryString);
    } else
        XmlHttp.send(null);
}
/**
* Сборка параметров строки запроса
* @param1 array aParams    — массив, элементы которого вида: ["параметр", "значение"]
* @param2 array aData    — массив данных, вида: ["данные1", "данны2", .., "данныеN"]
**/
function buildParams(aParams, aData) {
var query = "";
    for (var i = 0; i < aParams.length; i++) {    // собираем параметры
        query += aParams[i][0]+"="+encodeURIComponent(aParams[i][1])+"&";
    }
    query = query.substr(0, query.length-1);    // обрезаем последний амперсанд
    if (aData) {    // если нужно передать данные
        for (var i = 0; i < aData.length; i++) {
            query += "data[]="+encodeURIComponent(aData[i])+"&";
        }
        query = query.substr(0, query.length-1);
    }
return query;
}

onload = function () {
isXmlHttpInit = init();
resultDIV = document.getElementById("result");
request = buildParams(request);
var req = request;
for (var i = 0; i < req.length; i++) {
    if (req.charAt(i) == "&") {
        req = req.substr(0, i)+"&amp;"+req.substr(i+1);
    }
}
document.getElementById("request").innerHTML = req;
}
</script>
<style type='text/css'>
html, body {height: 95%}
html>body {height: 100%}
#request, #result {padding: 5px; border: 2px solid black; overflow: auto}
#request {height: 20%; color: blue}
#result {height: 60%}
</style>
</head>

<body>
Запрос:
<div id='request'></div>
<input type="button" onClick='sendQuery("test.php", request)' value="Отправить запрос"><br>
Ответ:
<div id='result'></div>
</body>
</html>

test.php:
Код

<?php
$query = iconv("UTF-8", "cp1251", print_r($_POST, true));
header('Content-Type: text/html; charset=windows-1251');
echo "<pre><b>POST:<hr></b>".$query."</pre>";
?>

PM   Вверх
mr.DUDA
Дата 24.3.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: нет
Всего: 232



может, не в тему, но:
smile


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Обсуждение форума | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.