我的网站依赖于用户输入提供的独特内容。
因此,他们输入“体育”,他们将收到基于体育的内容。这很简单。但是,一旦我开始向其中添加更多关键字,它就会变得有点复杂,至少在我这样做的方式上是这样。
我需要开始不断检查用户输入的数据是否为数组,并以不同的方式操作数据。
我目前正在使用 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 还是新手,所以我对任何事情都持开放态度。
谢谢!