【问题标题】:Insert URL in database Codeigniter 3在数据库 Codeigniter 3 中插入​​ URL
【发布时间】: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


【解决方案1】:

我可以看到您的控制器收集了三个 POST 变量,它们是“comment”、“page_id”和“url_link”。但是,如果您查看视图代码,则只会发送“评论”。

一个简单的解决方案是添加两个名为“page_id”和“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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多