Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Комментарии на AJAX


Автор: ashenemy 4.10.2007, 20:52
ПОмогите плз, бьюсь уже головой несколько дней кряду, ниче толком не получает.
Задача такая
1. Добавить коммент на страницу без обновления, если добавляется новый коммент чтобюы генерился html код и вставлялся сверу
2. Так же редактирование, нажимаешь на кнопку редактирование, появляется форма редакитрования именно в том месте где был коммент,  а остальная страница оставалась таком же состоянии


Умоляю просто может у кого есть готовое решение подкинье или помогите плиз

Автор: dsCode 4.10.2007, 21:52
ashenemy, у меня на форуме и в гостевой так сделано (правда выложить не могу - потому что все это недописано так и лежит). Но суть проста: 

1. каждый блок (основной блок сообщения) находится в своем диве, в этом диве есть еще один див (с сообщением)

2. с каждым сообщением связан объект (дубликат сообщения, но с учетом спец.символом, BB-тегов, \n, \r и т.д.), хотя, можно и без дополнительного объекта, а просто брать innerHTML (при редактировании), но это только в том случае, если нет BB-Tag'ов и т.д.

3. по клику див с сообщением скрывается и в блок (основной блок сообщения) добавляется динамически созданная форма для редактирования с текстарией. В эту текстарию кладется innerHTML из div'a сообщения (ну или из дубликата, где уже учтено, что, например, жирный шрифт отобразится как [ b ] test [ b ], а не <span style="font-weight: bold;"> test </span>, если б мы взяли innerHTML, хотя можно и регЭкспом заменить)

4. созданная форма отсылается через аякс, по колбеку респонс записывается в див сообщения и в объект (дубликат), форма редактирования/добавления уничтожается. В случае добавления - просто добавляйте новый блок с внутренним дивом сообщения вверх.

Автор: ashenemy 4.10.2007, 22:01
заалгаритмировать я ужде понял проблема в реализации , с джаваскриптом не в ладах совсем, а если честно учить его времени совсем нет 
РЕбят ну кто нить помогите плиз

Автор: dsCode 4.10.2007, 22:18
ashenemy, да вот в том-то все и дело, что там не две строчки писать (и даже не 50). Если б это была у меня уже готовая библиотека - выложил бы - не жалко, но там конкретно привязанный к моим реализациям и шаблонам код (к тому же, как я сказал, не дописанный). Поэтому выложить все это здесь - нереально.

Автор: ashenemy 4.10.2007, 22:38
Помогите пожалуйста как воздух нужно

Автор: ashenemy 5.10.2007, 21:34
ребят нарыл скрипт но он пишет в файл  помогите плиз поменятьи чтобы писал в мускул

Автор: Rock 5.10.2007, 23:05
Код

<html>
<head>
<script src="prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function progressBar () {
 // здесь потом реализуешь функцию показа/скрытия панели "загрузка"
}
function commentAdd(form) {
progressBar();
new Ajax.Request('addbd.php',{
   method:'post',
   parameters:  $(form).serialize(true),
   onSuccess: function(transport) {
        var response = transport.responseText;
        $('comments').innerHTML += response;
        progressBar();
   }
});
}
</script>
</head>
<body>
    <h1>Комментарии</h1>
    <div id="comments">
     </div>
    <h2>Отправить комментарий</h2>
    <form name="comment" id="com" method="post" onsubmit="commentAdd(this); return false;">
        <textarea name="commenttext" cols="70" rows="10"></textarea>
        <input type="submit" value="Добавить комментарий" />
    </form>
</body>
</html>


Добавлено @ 23:11
Код

require_once '../includes/connect.php';
$userstable="test";
$txt = $_POST['commenttext'];
$sql = "INSERT INTO $userstable (`id`, `text`) VALUES ('', '" . mysql_escape_string($txt) . "')";
mysql_query($sql) or die (echo mysql_error());
$comment_id = mysql_insert_id();
echo "<div id=\"$comment_id\">$txt</div>";

Автор: ashenemy 6.10.2007, 01:24
не пашет smile 

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