Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
15.06.2012, 00:42 | #1 |
Неактивный пользователь
Пол: Регистрация: 15.06.2012
Сообщений: 2
Репутация: 0
|
Отправляется 2 раза форма
Отправляется 2 раза, заносится 2 записи в БД и естественно 2жды выводится. Я не могу разобраться в чём проблема.В этом новичок.
вот скрипт Код:
$(document).ready(function(){ $(".gray").live("click", function(e) { var name = $("#nameComment").val(); var addComment = $("#addComment").val(); if(typeof name === 'undefined') name=''; var comment = $("#textComment").val(); var post_url = $("#posturlComment").val(); var postO_url = $("#posturlOpenComment").val(); var dataString = 'nameComment='+ name + '&textComment=' + comment + '&posturlComment=' + post_url +'&posturlOpenComment=' + postO_url ; if(post_url=='') {alert('Error')}; if(comment==='') { alert('Пожалуйста заполните все поля'); } else { $("#ajaxComment").show(); $("#ajaxComment").fadeIn(400).html('<img src="/reader/comment/images/comment/ajax-bar.gif" align="absmiddle"> <span class="loading"></span>'); $.ajax({ type: "POST", url: "", data: dataString, cache: false, success: function(html){ if(html!=='ERR1' && html!=='ERR2' && html!=='ERR3' && html!=='ERR4') { $("#allComment").append(html); //$("ol#update li:last").fadeIn("slow"); $("#nameComment").val(""); $('#textComment').text(""); $("#textComment").focus(); $("#ajaxComment").hide(); } else { $("#messComment").html(''); $("#messComment").show(); $("#ajaxComment").hide(); if(html=='ERR1')$("#messComment").append("Ошибка: Имя должно состоять более чем из 3 символов<br/>"); if(html=='ERR2')$("#messComment").append("Ошибка: E-Mail указан неверно<br/>"); if(html=='ERR3')$("#messComment").append("Ошибка: Отсутствует текст комментария<br/>"); if(html=='ERR4')$("#messComment").append("Ошибка: Не удается установить тип комментария. Попробуйте позже"); $("#messComment").fadeOut(3000); } } }); } e.preventDefault(); }); }); Код:
<?php class Comments extends Controller_Base { var $path = ''; // path to page on comments var $table = 'comments'; // table comments var $prefix = 'rche_'; // prefix table comments var $dle = 'dle_';//prefix dle var $dtable = 'users';//table users dle var $event = ''; var $key = 'e34d9147f42016a32a9bab982492323547e121ce'; // secret key for ajax var $login = false; // login user or email and name var $user = array(); // user info if login var $admin = false; // admin option var $gravatar = false; // avatar from gravatar.com var $regos = true; function index () { $this->event=@$_POST['eventComments']; if(@$_GET['eventComments']=='del' and @$_GET['noajax']==1)$this->event=@$_GET['eventComments']; if($this->event=='save') $status=$this->saveComments(); if($this->event=='del') $status=$this->delComments(); if($this->event=='edit') $status=$this->editComments(); if($this->event=='')$status=NULL; return $status; } function itemComments($username,$date,$text,$img,$id,$autor=false, $userid,$moder) { global $member_id,$is_logged,$moderate; $text = $this->myutf8_substr2($text,0,103); if($moder && !$moderate && ($member_id['user_group']==1||$member_id['user_group']==2||$member_id['user_group']==3||$member_id['user_group']==7||$member_id['user_group']==8)) $moder = '<span class="modComment" title="Не отмодерировано"> Не отмодерировано</span>'; //$reply='<a href="javascript://" rel="'.$id.'" class="replyComment" title="Ответить на комментарий: '.$username.'">Ответить</a>'; // if($autor or $this->admin)$edit=' | <a href="javascript://" rel="'.$id.'" class="editComment" title="Редактировать комметарий">Редактировать</a>'; // if($member_id['user_group'] == 1 or $member_id['user_group'] == 2) $del=' | <a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&passport='.$possport.'&noajax=1&eventComments=del" onclick="return true" rel="'.$id.'" passport="'.$possport.'" class="delComment" title="Удалить комментарий">Удалить</a>'; if($moderate){ $mod = '|<a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&mod=1" class="editComment" title="Отмодерировать комметарий">Отмодерировать</a>'; $del=' <a href="http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'?id='.$id.'&del=1" class="delComment" title="Удалить комментарий">Удалить</a>'; } $uslink="http://".$_SERVER['HTTP_HOST']."/user/$username/"; $out='<div class="itemComment" id="itemComment-'.$id.'"> <div class="avatarComment"> <a href="'.$uslink.'" title="Смотреть профиль пользователя: '.$username.'"> <img src="'.$img.'" width="48" height="48" border="0" alt="Аватар пользователя: '.$username.'"/></a> </div> <div class="panelComment"> <a class="userComment" href="'.$uslink.'" title="Смотреть профиль пользователя: '.$username.'">'.$username.'</a> <span class="dateComment" title="Дата, время комментария">'.$date.$moder.'</span> </div> <div class="bodyComment"> '.$text.' </div> <div class="footerComment"> '.$reply.$edit.$del.$mod.' </div> '; return $out; } function outComments() { global $moderate; echo '<div id="rcheComments"> <div id="allComment">'; $sql="SELECT {$this->prefix}{$this->table}.*, rche_users.photo, rche_users.username, rche_users.userID FROM {$this->prefix}{$this->table} LEFT JOIN rche_users ON {$this->prefix}{$this->table}.user =rche_users.userID WHERE {$this->prefix}{$this->table} .url='".$this->getUrl()."' ORDER BY {$this->prefix}{$this->table}.id ASC"; $allComm=$this->registry['DB']->getAll($sql); if(count($allComm)>0): // subcomments foreach($allComm as $item): if($item['reply']==0)$sortcomm[$item['id']]=$item; if($item['reply']>0) { if(isset($path[$item['reply']])) { $str='$sortcomm'; foreach($path[$item['reply']] as $pitem): $rep=$item['reply']; $str.="[$pitem][sub]"; endforeach; $str.="[{$item['reply']}][sub]"; $str.="[{$item['id']}]"; $str.='=$item;'; eval($str); foreach($path[$item['reply']] as $pitem): $path[$item['id']][]=$pitem; endforeach; $path[$item['id']][]=$item['reply']; } else { $sortcomm[$item['reply']]['sub'][$item['id']]=$item; $path[$item['id']][]=$item['reply']; } } endforeach; $this->tree_print($sortcomm); else: echo '<p align="center" style="color:#800000;">Комментариев нет</p>'; endif; echo '</div> <div id="messComment"></div> <div id="ajaxComment"></div>'; echo $this->formComment(); } function tree_print(&$a_tree) { foreach($a_tree as $sub) { $this->outItem($sub); echo "</div>"; } } function outItem($item) { global $is_logged,$db; $autor=false; if (intval($item['moderate'])==0) $mod = true; $userid=$item['user']; $row = $db->super_query( "select * from " . PREFIX . "_users where user_id = $userid" ); $img=$SERVER['HTTP_HOST'].'/uploads/fotos/'.$row['foto']; if ($img==$SERVER['HTTP_HOST'].'/uploads/fotos/'){ $img="http://uroboros-team.ru/templates/Mangani/images/noavatar.png"; } $item['name'] = $row['name']; echo $this->itemComments( $item['name'], $this->get_Date($item['date']), html_entity_decode($item['comment']), $img, $item['id'], $autor, $userid, $mod); } function saveComments() { global $is_logged,$member_id; $name = trim(strip_tags($_POST['nameComment'])); $text = PHP_slashes(htmlspecialchars(markhtml(trim(rawurldecode($_POST['textComment']))))); $post_url = htmlspecialchars(trim($_POST['posturlComment'])); $urlOpen = htmlspecialchars(trim($_POST['posturlOpenComment'])); $error = false; $img=$member_id['photo']; if(strlen($text) <= 1 ){$error=true;$msg=3;} if(strlen($post_url)>50 or strlen($post_url)<10){$error=true;$msg=4;} if($error) { echo mb_strlen($text,'utf-8'); exit; } $date=$this->get_Date(); $time=time(); $mode = 1; if (!in_array($member_id['group'], array(1,2,3,8,9))){ $sql="INSERT INTO {$this->prefix}{$this->table} (`reply`,`user`,`name`,`email`,`comment`,`date`,`url`,`pass`,`urlOpen`,`moderate`) VALUE ('$replyComment','{$member_id['user_id']}','$name','$email','$text','$time','$post_url','$pass','$urlOpen','$mode')"; } $this->registry['DB']->execute($sql); if(intval($_POST['noAjax'])<>1): echo $this->itemComments( $name, $date, html_entity_decode($text), $img, $lastId, true, $user, $mode); exit; endif; } function formComment() { global $user,$is_logged,$member_id; $name='<tr><td class="section-two">'.$member_id['name'].'</td>'; $url=$this->getUrl(); $urlOpen=$this->getUrl(false, 'open'); $form = '<h3 id="newComment">Оставить свой комментарий </h3>'; if($this->regos && !$is_logged){ $form.= '<p align="center" color="red">Пользователи находящиеся в группе <strong>"Гости"</strong><br> Не могут комментировать<br> Пожалуйста <a href="http://'.$_SERVER['HTTP_HOST'].'index.php?do=register">Зарегистрируйтесь</a> </p>'; }else{ $form.='<form action="" method="post" id="formComment"> <input name="noAjax" id="noAjax" value="0" type="hidden"> <input name="posturlComment" id="posturlComment" value="'.$url.'" type="hidden"> <input name="posturlOpenComment" id="posturlOpenComment" value="'.$urlOpen.'" type="hidden"> <table id="tableComment"> '.$name.' <tr><td><textarea name="textComment" id="textComment" class="textareaComment"></textarea></td></tr> </table> <center><input value="Комментировать" name="submit" type="submit" class="gray"/></center> </form>'; } $form.='</div><p align="center"><a href="http://imarceting.com" style="font:11px tahoma;color:#999;text-decoration:none;" target="_blank">© Marceting</a></p>'; return $form; } function getUrl($explode=false, $open = '') { $url=$_SERVER["REQUEST_URI"]; if($this->admin==true) { $u=explode('?',$url); $e=explode('&',$u[1]); $i=0; foreach($e as $item) { $i++; $data=explode('=',$item); if($data[0]=='pass') continue; $newQuery.=$item; if($i<count($e))$newQuery.='&'; $newQuery='?'.$newQuery; if(substr($newQuery, -1)=='&')$newQuery=substr($newQuery, 0, strlen($newQuery)-1); } $url="{$u[0]}{$newQuery}"; } if($explode) { $url=explode('?',$_SERVER['REQUEST_URI']); $url=$url[0]; } if($open=='open')return urlencode($url); return md5($url); } function outModerate(){ global $is_logged,$member_id,$db; if ($is_logged){ if($db){ if($member_id['user_group'] == 1 || $member_id['user_group'] == 2 || $member_id['user_group'] == 3){ $id_comm = intval($_GET['id']); $a_url = "http://".$_SERVER['HTTP_HOST']."/reader/moderate.php"; if($_GET['del']==1){ $sql="DELETE FROM {$this->prefix}{$this->table} WHERE id = '$id_comm' LIMIT 1"; $this->registry['DB']->execute($sql); header('Location: '.$a_url); } if($_GET['mod'] == 1){ $sql = "UPDATE {$this->prefix}{$this->table} set moderate = '1' WHERE id = '$id_comm' " ; $this->registry['DB']->execute($sql); header('Location: '.$a_url); } echo '<div id="rcheComments"> <h3 class="titleComment">Комментарии ожидающие модерации</h3> <div id="allComment">'; $sql="SELECT {$this->prefix}{$this->table}.* FROM {$this->prefix}{$this->table} WHERE {$this->prefix}{$this->table}.moderate = '0' ORDER BY {$this->prefix}{$this->table}.id ASC"; $allComm=$this->registry['DB']->getAll($sql); if(count($allComm)>0): foreach($allComm as $item): if($item['reply']==0)$sortcomm[$item['id']]=$item; endforeach; $this->tree_print($sortcomm); else: echo "Комментариев ожидающих модерации нет"; endif; echo '</div> <div id="messComment"></div> <div id="ajaxComment"></div>'; } else { die ("Вашего ранга недостаточно"); } } else { die ("Соединение с БД не установлено"); } } else { die ("Вы не вошли под учётной записью"); } } function get_Date($shtamp='') { if($shtamp=='')$shtamp=time(); $MonthNames=array("Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"); $date = date('d',$shtamp).' '.$MonthNames[date('n',$shtamp)-1].' '.date('Y',$shtamp).'г, '.date('H',$shtamp).'ч '.date('i',$shtamp).'мин'; return $date; } function len_utf($stren){ return preg_replace('/[^\s]{20}[^\s]+/', '', $stren); } function myutf8_substr2($str,$from,$len){ # utf8 substr return mb_substr($str,$from,$len,'utf-8'); } } ?> |
Реклама: | шумоглушитель litened 60-30 nkd | полировочная паста | столы компьютерные угловые | Рекомендуем гипермаркет КНС.ру - Synology DS223 купить - Подарок каждому покупателю! | интернет-магазин КНС Нева предлагает монитор Digma Progress 24A501F - поставка техники в СПБ и города северо-запада России. |
15.06.2012, 18:11 | #2 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
Re: Отправляется 2 раза форма
Вместо
попробуй Код:
return false; + скобки не считал но, по-моему, нужно вынести это перед последним "})". но это не точно...
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) Последний раз редактировалось Alan2006; 15.06.2012 в 18:18.. |
|||||||||||||||||||||||
16.06.2012, 20:37 | #3 |
Неактивный пользователь
Пол: Регистрация: 15.06.2012
Сообщений: 2
Репутация: 0
|
Re: Отправляется 2 раза форма
Код:
$(document).ready(function(){ |
18.06.2012, 09:55 | #4 | |||||||||||||||||||||||
Постоялец
Пол: Регистрация: 02.07.2009
Сообщений: 393
Репутация: 79
|
Re: Отправляется 2 раза форма
А вот это зря. В зависимости от браузера/платформы могут начаться косяки... Хотя как знаешь....
__________________
Каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в винды. (ц) |
|||||||||||||||||||||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows не грузится с первого раза | eutanatos | Microsoft Windows | 20 | 16.05.2013 15:25 |
Что отправляется на urs.microsoft.com | AbayKa | Скорая помощь | 1 | 15.01.2009 17:28 |
Почта не отправляется | evgenn | Скорая помощь | 8 | 18.07.2008 06:51 |
Компьютер включается не с первого раза. | Лока | Архив | 11 | 09.04.2008 02:17 |
|
|