【发布时间】:2021-09-19 19:48:19
【问题描述】:
我收到了一个网站,但开发人员不再回复我。作为一个初学者,我正在尝试自己找到解决方案,但我无法弄清楚。
我想添加一个功能,也许你们可以帮助我。
为了解释我们的用户可以在一个页面上写一些 cmets,在发布之前,我们的版主正在验证评论,一旦完成,用户就会收到一封电子邮件,说明您的评论 Blablabla 已通过验证。
我们想在电子邮件中添加一个指向他发表评论的页面的链接,因为我们有很多具有不同 URL 的单个页面,他会更容易找到他的评论。
所以我们的目标是将 URL 保存到数据库中,然后我将提取该 URL 并将其放入电子邮件中。
我在我们的 user_comment DB 中添加了 url_link 列来存储 URL。
这是我的控制器,我添加了 urllink
public function add_comment(){
if ($this->session->userdata('user_id')){
$comment = $this->security->xss_clean($this->input->post('comment'));
$pageid = $this->security->xss_clean($this->input->post('page_id'));
$urllink = $this->security->xss_clean($this->input->post('url_link'));
$data = array(
'user_id' => $_SESSION['user_id'],
'page_id' => $pageid,
'url_link' =>$urllink,
'comment' => $comment,
'created' => date("Y-m-d H:i:s"),
'modified' => date("Y-m-d H:i:s")
);
echo $query = $this->page_model->add_comments($data);die;
}else{
redirect();
}
}
我的模型
public function add_comments($data){
if($this->db->insert('user_comment',$data)){
return 'true';
}else{
return 'false';
}
}
我对评论区的看法
<h3>Post a Comment</h3>
<?php if ($this->session->userdata('user_id')){?>
<div class="textarea_editor" style="clear:left; ">
<div class="textarea_editorinner">
<div id="editor" data-id="<?php if(!empty($_SESSION['user_id'])){ echo $_SESSION['user_id'];}else{ echo '';}?>"></div>
<textarea name="comment" style="display:none" id="hiddenArea" class="add_comment"></textarea>
</div>
<?php }else{?>
<div class="write-comment">
<input style="margin-left:10px; " type="text" data-toggle="modal" data-target="#user_login" placeholder="Type your comment" class="add_comment">
<?php }?>
<?php
if ($this->session->userdata('user_id')){?>
<button class="sendmessage sendmessageclick" data-d-id="<?php echo $pages[0]->pageId;?>"><span class="far fa-paper-plane">
</span><span class="d-none d-block-sm">Send</span></button>
<?php }?>
</div>
</div>
我的 common.js
$('.sendmessageclick').click(function(){
$('#hiddenArea').val(quill.container.firstChild.innerHTML);
$.ajax({
type:'post',
async: false,
data:{page_id:$(this).attr('data-d-id'),comment:$('.add_comment').val()},
url: static_url+'/pages/add_comment',
success: function(result){
$('.add_comment').val('');
if(result == 'true'){
$('.comment_alert').show();
setTimeout(function() {
$('.comment_alert').hide();
location.reload();
}, 3000);
}else{
alert('Error');
location.reload();
}
console.clear();
}
});
});
除了 URL 之外,一切都运行良好,当然我遗漏了一些东西来指示要存储在数据库中的 URL。
感谢您的支持。
【问题讨论】:
-
您尝试过什么解决问题的方法?你被困在哪里了?据我所知,您还没有编写任何将 URL 存储在评论中的代码
-
是的,我正在努力学习这个过程,所以知道没有尝试太多。我更多的是寻找一些指导,该往哪个方向走。
-
第一步是:检查代码做了什么,缺少什么。然后实现缺失的部分
-
通过控制器上的 Ajax 发送该 url_link 以将其插入数据库........您还没有发送 url 只有评论和 page_id 已发送。
-
好的,我会添加它,我想我应该添加 url_link:$(this).attr('url-link') 在我看来,我正在添加 url-link="url_link;?>"
标签: php database codeigniter