Я нобее и все еще застрял в этой проблеме после нескольких часов поиска, проб и ошибок. Любая помощь будет очень признательна, поскольку я полностью исключаю идеи. Спасибо.если инструкция отключает мою функцию jQuery/button
У меня есть форма отправки комментария jquery, которая отображает комментарий в прямом эфире, когда вы отправляете сообщение. Код работает отлично, пока я не добавлю «if statement» в файл «include» php, необходимый для моей кнопки удаления, в эхом существующих комментариях. Когда я использую оператор if, кнопка больше не работает, запуская пост jquery в режиме реального времени на странице.
Это проблематично, если утверждение в включают скрипт:
if(loggedin() && $d['user_id'] == $_SESSION['user_id']){ $deletebutton = '<a href="#" id="'.$d['id'].'" class="delete">x</a>';};
Это часть из включать скрипт (comment.class.php), где расположен проблематичным, если заявление:
class Comment
{
private $data = array();
public function __construct($row)
{
/*
/ The constructor
*/
$this->data = $row;
}
public function markup()
{
/*
/ This method outputs the XHTML markup of the comment
*/
// Setting up an alias, so we don't have to write $this->data every time:
$d = &$this->data;
//$link_open = '';
//$link_close = '';
//if($d['url']){
// If the person has entered a URL when adding a comment,
// define opening and closing hyperlink tags
//$link_open = '<a href="'.$d['url'].'">';
//$link_close = '</a>';
//}
// Converting the time to a UNIX timestamp:
$d['dt'] = strtotime($d['dt']);
// Needed for the default gravatar image:
// original code for avatar:
//'.$link_open.'
//<img src="http://www.gravatar.com/avatar/'.md5($d['email']).'?size=50&default='.urlencode($url).'" />
//'.$link_close.'
//$url = 'http://'.dirname($_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/img/default_avatar.gif';
if(loggedin() && $d['user_id'] == $_SESSION['user_id']){ $deletebutton = '<a href="#" id="'.$d['id'].'" class="delete">x</a>';};
return '
<div id="comment">
<div class="avatar">
<a href="http://www.mywebsite.com/users/view.php?pid='.$d['user_id'].'" alt"User Link" title="User Link"><img src="http://www.mywebsite.com/users/avatar/'.$d['user_id'].'.jpg" /></a>
</div>
<div class="name"><a href="http://www.mywebsite.com/users/view.php?pid='.$d['user_id'].'" alt"User Link" title="User Link">'.$d['name'].'</a></div>
<div class="date" title="Added at '.date('H:i \o\n d M Y',$d['dt']).'">'.date('d M Y',$d['dt']).'</div>
<p class="commentText">'.$d['body'].'</p>
'.$deletebutton.'
</div>
';
}
Это главная страница формы и вторили комментарии треска е с включают заявление для файла comment.class.php:
<?php if(loggedin()){echo '
<div id="addCommentContainer">
<form id="addCommentForm" method="post" action="">
<div>
<img src="http://www.mywebsite.com/images/avatar.jpg" class="avatar" />
<p class="commentAdd">Add your comment or review:</p>
<!-- <input type="text" name="link" id="link" /> -->
<textarea name="body" id="body" type="message" ></textarea>
<input type="image" id="submit" value="" src="http://www.mywebsite.com/images/commentsubmit.png" class="commentSubmit" />
<input type="hidden" name="name" id="name" value="'.$_SESSION['first'].'"/>
<input type="hidden" name="user_id" id="user_id" value="'.$_SESSION['user_id'].'" />
</div>
</form>
</div>';} ?>
<?php
/*
/ Output the comments one by one:
*/
foreach($comments as $c){
echo $c->markup();
}
?>
Это мой JS скрипт для функции:
$(document).ready(function(){
/* The following code is executed once the DOM is loaded */
/* This flag will prevent multiple comment submits: */
var working = false;
/* Listening for the submit event of the form: */
$('#addCommentForm').submit(function(e){
e.preventDefault();
if(working) return false;
working = true;
$('#submit').val('Working..');
$('span.error').remove();
/* Sending the form fileds to submit.php: */
$.post('submit.php',$(this).serialize(),function(msg){
working = false;
$('#submit').val('Submit');
if(msg.status){
/*
/ If the insert was successful, add the comment
/ below the last one on the page with a slideDown effect
/*/
$(msg.html).hide().insertBefore('#addCommentContainer').slideDown();
$('#body').val('');
}
else {
/*
/ If there were errors, loop through the
/ msg.errors object and display them on the page
/*/
$.each(msg.errors,function(k,v){
$('label[for='+k+']').append('<span class="error">'+v+'</span>');
});
}
},'json');
});
});
Так что же происходит не так? Ошибки? Плохая разметка? – Pointy
if (loggedin() && $ d ['user_id'] == $ _SESSION ['user_id']) == FALSE, параметр $ varButton никогда не установлен. перед этим попробуйте $ deletebutton = ''; так что это никогда не определено – Bene
Эффект jQuery слайда размещения комманды не работает, когда я использую оператор if. Тем не менее он по-прежнему относится к базе данных. Кнопка просто не визуально работает. – Jason