在数据库Codeigniter 3中插入URL



我收到了一个网站,开发人员不再回复我。作为一个初学者,我试图自己找到一个解决方案,但我想不通。

我想添加一个功能,也许你们可以帮助我。

为了解释我们的用户可以在一个页面上写一些评论,在发布之前,我们的主持人正在验证评论,一旦完成,用户就会收到一封电子邮件,说你的评论Blablabla已经验证。

我们想在电子邮件中添加一个链接,链接到他写评论的页面,因为我们有很多不同URL的单个页面,他会更容易找到他的评论。

因此,我们的目标是将URL保存到数据库中,然后我将提取该URL并将其放入电子邮件中。

我在user_comment DB中添加了url_link列来存储url。

这是我的控制器,我添加了urlink

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>

我的常用.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之外,一切都很完美,当然我缺少了一些指示要存储在DB中的URL的东西。

感谢您的支持。

正如我所看到的,您的控制器收集了三个POST变量,它们是'comment'、'page_id'和'url_link'。但是,如果您查看视图代码,则只发送"注释"。

一个简单的解决方案是添加两个额外的输入框,名称分别为"page_id"one_answers"url_link"。

<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>
<input type='hidden' name='page_id' value='<<Page ID value added by PHP>>'>
<input type='text' name='url_link' value=''>
</div>
<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>

最新更新