Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Обсуждение форума > надо призвать пользователей пользоваться кнопкой..


Автор: Bangladesh 26.1.2006, 23:14
я смотрю что вещь эта очень удобная, а вот пользуют её пока не все. предлагаю разместить объяву в каждом разделе...

Автор: Exception 26.1.2006, 23:29
Народ не привык ей пользоваться - она появилась только в НД. Впрочем, если что, модераторы могут сами отметить smile

Автор: Bangladesh 26.1.2006, 23:49
нет... не надо переваливать на модераторов. только тот, кто задал вопрос может точно сказать, что ответ был дан... и зачем тогда разрешать эту возможность...

Автор: Wowa 27.1.2006, 01:32
Можете разместить у себя в подписи призыв к пользованию этой кнопкой smile Мы со своей стороны также призовем народ.

Автор: R.M. 27.1.2006, 01:45
Да о чём вы говорите? Некоторые люди даже элементарного "спасиба" не скажут а вы хотите чтобы они по кнопочкам кликали.

Автор: batigoal 27.1.2006, 09:40
А зачем? Кто регулярно форумом пользуется - и так заметит.

Автор: Mal Hack 27.1.2006, 11:35
ИМХО, но эта возможность больше модераторам нужна, нежели пользователям.
Если, конечно, пользователь отметит сам, то большое ему спасибо.

Автор: z-END 27.1.2006, 11:54
Цитата(I @  GyoZ, 26.1.2006, 23:49 Найти цитируемый пост)
нет... не надо переваливать на модераторов. только тот, кто задал вопрос может точно сказать, что ответ был дан... и зачем тогда разрешать эту возможность...

как говорица врач сказал в морг, значит в морг..

модератор решает закрывать тему или нет, так что ему и определять решена тема или нет, ну и естественно автору тоже...
Добавлено @ 11:54
Mal Hack поддерживаю.

Автор: NikolayBY 29.1.2006, 17:06
Да просто эта кнопка не очень выделяется, вот неделю назад ее заметил и начал пользоваться, причем отметил все свои вопросы, которые задавал в самом начале посещения данного форума.

Необходимо ее сделать более заметно.

Автор: Ciber SLasH 29.1.2006, 17:39
Если б не эта тема, никогда бы наверно и не узнал бы о этой кнопке. smile

Автор: CaptainFlint 30.1.2006, 01:51
Цитата(Ciber SLasH @ 29.1.2006, 17:39 Найти цитируемый пост)

Если б не эта тема, никогда бы наверно и не узнал бы о этой кнопке.

Да уж... У меня та же история. smile Заодно узнал, наконец, что же эти галочки около тем означают. smile

Автор: Serkys 18.3.2006, 00:51
Посмотрел так, редкая тема галкой озарена... А удобная ведь штука. Где вопрос решён - велком интересующимся, где нерешён - делящимся знаниями. Надо как-то продвигать тему в народ.

Автор: batigoal 18.3.2006, 10:01
Цитата(Serkys @ 18.3.2006, 01:51 Найти цитируемый пост)
Посмотрел так, редкая тема галкой озарена... А удобная ведь штука. Где вопрос решён - велком интересующимся, где нерешён - делящимся знаниями. Надо как-то продвигать тему в народ.

Надо просто напоминать об этом тем, кто сказал, что проблема решена, но не поставил галку. Со временем привыкнут.

Автор: Wowa 18.3.2006, 14:11
Просто надо эту штуку на технологии AJAX сделать. Тогда и пользоваться будут чаще.

Автор: Serkys 18.3.2006, 15:36
Цитата(Wowa @ 18.3.2006, 14:11 Найти цитируемый пост)
Просто надо эту штуку на технологии AJAX сделать.

Это как это?

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

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

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

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

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

Конечно.



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

Можно пример? Я не слышал ни о каких траблах с кодировкой. Где проявляется?

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

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

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

Автор: Ciber SLasH 19.3.2006, 02:58
Цитата(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);
?>

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

Автор: Ciber SLasH 19.3.2006, 04:02
Цитата(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);
?>

Автор: Ciber SLasH 19.3.2006, 18:28
Ну так что, sergej.z, мой пример постом выше, решил проблему с обрезанием после & ?

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

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

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

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

Автор: Ciber SLasH 20.3.2006, 05:39
Цитата(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>";
?>

Автор: mr.DUDA 24.3.2006, 13:42
может, не в тему, но:
smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)