|
|
|
| Здравствуйте! реализовал скрипт http://ruseller.com/adds.php?rub=12&id=1670 в качестве комментарий, и все работает нормально только нужно в ручную обновить страницу, чтобы вывести комм. на страницу... подскажите пожалуйста, как вывести комм. не обновляя полностью страницу с помощью AJAX? | |
|
|
|
|
|
|
|
для: uvajs
(23.07.2010 в 02:59)
| | Вы реализовали скрипт с формой обратной связи или переделывали под свои нужды исходный код?
Когда Вы скачивали видео уроки вы прочли вот это, цитирую, "Но скажу сразу - урок не для новичков. Если Вы не знакомы с HTML и совсем не ориентируетесь в PHP то Вам будет сложновато. Хотя...попробуйте, может быть и получится." ?
Для начала попробуйте сделать так, что бы была перезагрузка страницы после добавления комментария и не надо было вручную перегружать страницу.
Если Вы хотите использовать AJAX, то Вам надо иметь представление об основах Javascript или фреймворка Jquery.
Вот подходящий форум для подобных вопросов | |
|
|
|
|
|
|
|
для: uvajs
(23.07.2010 в 02:59)
| | Ради интереса посмотрел уроки по Вашей ссылки...
Думаю, что понял Вас.
Вы внимательно посмотрите те части уроков, где Попов объясняет, окуда берутся сообщения об ошибках или успешной отправке сообщения, почему они появляются над формой.
И Вы поймёте, почему не появляется комментарий и надо обновлять страницу. | |
|
|
|
|
|
|
|
для: Slo_Nik
(23.07.2010 в 15:38)
| | >Вы внимательно посмотрите те части уроков, где Попов объясняет, окуда берутся сообщения об ошибках или успешной отправке сообщения, почему они появляются над формой.
>И Вы поймёте, почему не появляется комментарий и надо обновлять страницу.
Файл comments отвечает за вывод ошибок, т.е. обработчик
<?
// Запрет на кэширование
header("Expires: Mon, 23 May 1995 02:00:00 GTM");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GTM");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
//****
$log =="";
$error="no"; //флаг наличия ошибки
require_once 'JsHttpRequest.php';
$JsHttpRequest =& new JsHttpRequest("windows-1251");
//Короткие имена переменных и обрезка пробелов img_title
$comtext = trim($_POST['comtext']);
$login = trim($_POST['login']);
$id = trim($_POST['id']);
//Проверка наличия введенного текста комментария
if (empty($comtext))
{
$log .= "<li>Необходимо указать текст!</li>";
$error = "yes";
}
//****
//Проверка длины текста комментария
if(strlen($comtext)>9999)
{
$log .= "<li>Слишком длинный текст, в вашем распоряжении 9999 символов!</li>";
$error = "yes";
}
//****
//Проверка на наличие длинных слов
$mas = preg_split("/[\s]+/",$comtext);
foreach($mas as $index => $val)
{
if (strlen($val)>60)
{
$log .= "<li>Слишком длинные слова (более 60 символов) в тексте записи!</li>";
$error = "yes";
break;
}
}
//****
//Экранирование и преобразование опасных символов
if (!get_magic_quotes_gpc())
{
$comtext = addslashes($comtext);
$login = addslashes($login);
}
$comtext = htmlspecialchars($comtext);
$login = htmlspecialchars($login);
//****
//Если нет ошибок отправляем email
if($error=="no")
{
$prov = 0;
include("block/bd.php");
$date = date("Y-m-d");
$result2 = mysql_query ("INSERT INTO comments (post,author,text,date) VALUES ('$id','$login','$comtext','$date')",$db);
$emailadmin = 'admin@engells.com';//e-mail админа
$mes = "Новый комментарий на сайте, текст комм.: $comtext";
$to = $emailadmin;
$sub = '=?windows-1251?B?'.base64_encode('Новой комментарий на сайте').'?=';
$headers = 'From: '.$from.'
';
$headers .= 'MIME-Version: 1.0
';
$headers .= 'Content-type: text/plain; charset=windows-1251
';
mail($to, $sub, $mes, $headers);
//****
$ok ="<p style='font-family:Verdana; font-size:12px; border:2px solid #0c7f00; padding:10px; margin:20px; background-color:#ffffff;'><strong>Спасибо! Ваш комментарий добавлен.</strong></p>";
// преобразуем Enter в перенос строки
$comtext=str_replace("\n","<br>\n",$comtext);
//****
//Помещаем результат в массив
$GLOBALS['_RESULT'] = array(
'error' => 'no',
'text' => $comtext,
'ok' => $ok
);
//****
}
else//если ошибки есть
{
$log = "<p><font color=#cc0000><strong>Ошибка</strong></font></p><ul style='font-family:Verdana; font-size:12px; border:2px solid #cc0000; padding:10px; margin:20px;'>".$log."</ul>";
//Отправляем результат в массив
$GLOBALS['_RESULT'] = array(
'error' => 'yes',
'er_mess' => $log);
}
?>
|
а за вывод ошибок отвечает
<div align='center' id='cerror'></div>
|
Вот как обновлять никак не пойму...
но на сколько я понимаю, нужно прописать код на выборку комм. из базы в том же обработчике и вывести значение как ошибки? | |
|
|
|
|
|
|
|
для: uvajs
(23.07.2010 в 15:50)
| | Для начала запишите комментарий в базу и сделайте переход на страницу вывода комментариев после записи в базу на PHP. | |
|
|
|
|
|
|
|
для: Slo_Nik
(23.07.2010 в 15:38)
| | >Ради интереса посмотрел уроки по Вашей ссылки...
>Думаю, что понял Вас.
Подскажите пожалуйста, каким образом можно вывести комм. не обновляя полностью страничку?
или нужно еще один блок добавить в файле comm.js? | |
|
|
|
|
|
|
|
для: uvajs
(23.07.2010 в 18:32)
| | ну а какие попытки Вы уже предприняли для вывода комментариев? | |
|
|
|
|
|
|
|
для: Slo_Nik
(24.07.2010 в 00:12)
| | >ну а какие попытки Вы уже предприняли для вывода комментариев?
я прописал код в обработчике для вывод комм. и потом вывести на страницу через
<div align='center' id='cerror'></div>
|
другие идеи пока в голову не приходят... | |
|
|
|
|
|
|
|
для: uvajs
(24.07.2010 в 00:53)
| | Спасибо Slo_Nik получилось!!! | |
|
|
|