0

我的网站依赖于用户输入提供的独特内容。

因此,他们输入“体育”,他们将收到基于体育的内容。这很简单。但是,一旦我开始向其中添加更多关键字,它就会变得有点复杂,至少在我这样做的方式上是这样。

我需要开始不断检查用户输入的数据是否为数组,并以不同的方式操作数据。

我目前正在使用 Codeigniter 的会话类存储用户的选择,然后根据其值检索和操作数据。

所以他们提交表单,我的 JS 运行:

$('#topics_form').submit(function() {
    var topic = document.getElementById('topics_filter').value
    $.ajax({
        type: "POST",
        url: 'ajax/update_session_topic',
        dataType: 'json', 
        data: { topic: topic },
            success: function(){
                load_custom_topics()
            }
    });
    return false;
});

然后 update_session_topic 在我的 AJAX 模型中运行

public function update_session_topic()
{
    if ($this->session->userdata('active_topic') == FALSE) 
    {
        $array['active_topic'] = $this->input->post('topic');
        $this->session->set_userdata($array);
        return true;
    } else {
        $this->page_model->add_session_topic($this->input->post('topic'));
        return true;
    }
}

当只有 1 个值时,没什么大不了的。

但是,当尝试添加第二个值时......我不得不检查它是否是一个数组,或者让它成为一个数组。

    public function add_session_topic($current_filter)
    {
        $session = $this->session->userdata('active_topic');
        if (is_array($session) == false)
        {
            $session = array($this->session->userdata('active_topic'));
        } 
        foreach ($session as $keyword)
        {
            if ($keyword == $current_filter)
            {
                return false;
            }
        }
        $session[] = $current_filter;
        $active['active_topic'] = $session;
        $this->session->set_userdata($active);
        return true;
    }

这也发生在我的观点中。

这有点烦人,我希望有更好的方法来做到这一点。我对 PHP/codeigniter 还是新手,所以我对任何事情都持开放态度。

谢谢!

4

0 回答 0