jQuery + AJAH
Требуется реализовать добавление комментариев на сайте с помощью AJAH, решил использовать jQuery, написал не большой скрипт , вначале все работало, но когда потребовалось сделать проверку вводимых данных на стороне сервера, возникли проблема, как передать массив от сервера к клиенту? Попробовал использовать JSON, когда начал воплощать это в реальность возникли проблемы. Пытался исправть - не вышло, скрипт вообще не запускается...Помогите, новичку.
Сам скрипт: function addComment() { form = document.getElementById("com"); text = form.text.value; author = form.author.value; ip = form.ip.value; img = form.img.value; id = form.id.value; pr = form.pr.value; erdiv = document.getElementById("error_div"); erdiv.innerHTML = "<p align='center'>Ваш комментарий обрабатывается...</p>"; $.post( 'test.php', { text: text, author: author, ip: ip, img: img, id: id, pr: pr }, Success() ); } function Success(data) { result = eval(data); erdiv.innerHTML = ""; if (result.err == 'no') { td = document.createElement("div"); td.innerHTML = ("<div class='post_div'><p class='post_comment_add'>Автор: <strong>"+result.author+"</strong> <br> Дата: "+result.date+"</p><p>"+result.text+"</p></div>"); comtab = document.getElementById("comtab"); comtab.appendChild(td); form.text.value = ""; } else { erdiv.appendChild(result.log); } } Форма с данными:(не знаю зачем, но вдруг что нить здесь) <div id='comtab'></div><div id='error_div'></div> <p class='post_comment_addes'>Добавить комментарий:</p> <form method='post' name='comments' id="com"> <p><label>Комментарий: </label><br> <textarea style='border: 1px solid gray;' onfocus='this.style.background="#fcffc4"' onblur='this.style.background="#ffffff"' name='text' cols='33' rows='6'></textarea></p> <p>Введите сумму с картинки:<br> <img class='img_sum' src=<?php echo $myrow2["img"] ?> width='100' height='30'> <input class='img_area' style='border: 1px solid gray; margin-bottom:5px;' onfocus='this.style.background="#fcffc4"' onblur='this.style.background="#ffffff"' name='pr' type='text' size='9' maxlength='9'></p> <input name='id' type='hidden' value='<?php echo $id; ?>'> <input name='author' type='hidden' value='<?php echo $_COOKIE['pl_login']; ?>'> <input name='ip' type='hidden' value='<?php $ip=getenv("HTTP_X_FORWARDED_FOR"); if (empty($ip) || $ip=='unknown') {$ip=getenv("REMOTE_ADDR");} echo $ip; ?>'> <input name='img' type='hidden' value='<?php echo $myrow2["img"]; ?>'> <p> <input onMouseOver='this.style.background="#fcffc4"' onMouseOut='this.style.background="#f6f6f6"' style='border:1px solid #CCCCCC;' name='com_add' type='button' value='Добавить' onClick="addComment(); return false;"> </p> </form> Обработчик на стороне сервера:(тоже не знаю зачем, но вдруг) Код:
<?php |
Можно попросить оформить код читабельней через спце-теги.
Лень было разбираться в коде, но если вы используете json, то в коде я его не увидел. В конеце функции $.post() нужно вставить ключевое слово "JSON". А в php коде на выходе должен быть массив декодированный: jsonencode($array); |
Цитата:
|
Есть для этого редактор на сайте - очень удобный.
|
Цитата:
|
вот про это тут: http://www.linkexchanger.su/2008/34.html
jQuery.post( url, [data], [callback], [type] ) - загружает страницу, используя POST-запрос. Все почти точно так же, как и в предыдущем случае, поэтому даже примеров приводить не буду. Обращу Ваше внимание разве что на еще один опциональный параметр - [type]. В нем можно определить тип передаваемых данных - JSON, XML и т.п. Вот в type тут надо писать "json". Правда в том случае если вы используете post |
Часовой пояс GMT +3, время: 05:46. |