【问题标题】:Extract $keyword from a php search form从 php 搜索表单中提取 $keyword
【发布时间】:2012-05-14 12:58:17
【问题描述】:

这是我的搜索功能:

class Ads extends Controller
{
    public function search($format='velos', $cat='occasion', $location='france', $keyword, $page=1)
    {
        if($format == 'velos')
        {
            $query = '`private`=0';
        } else
        {
            $query = '`private`=1';
        }
    $this->images($query, $cat, $location,'MATCH(title) AGAINST ("'.db::escape($keyword).'" IN BOOLEAN MODE)', $page, '%s/%s/%s/'.$keyword.'/%d/', $row[0], $keyword);
    }
}

一切正常,当我更改 URL 中的关键字时,一切正常 但是我想在页面中回显那个关键字,我不知道怎么做? 我试过了

<?php echo $keyword; ?>

但是回声没有返回任何东西。可能存在范围问题,但我不确定。

编辑 实际上 $keyword 来自搜索字段,但来自另一个类,这可能是我考虑范围问题的原因

class UserModel extends Model
{
    public function search_form()
    {
    $form = new Form('search_form');

    $form->field('keyword', 'text', array
    (           
        'optional'      =>  true
    )); 
    if($data = $form->validate())
    {
        header('Location: '.WEB.sprintf($data['parts_search'].'/'.$data['category_search'].'/'.$data['location_search'].'/'.$data['keyword'].'/1/'));
    }
    return $form;
    }   
}   

解决方案:

这可能不是最好的解决方案,但实际上是我发现的唯一一个:

$url = 'http://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$parts = parse_url($url);
$path = $parts['path'];
$keys = explode('/', $path);
echo $keys[4]; // `corresponding to the 4th url word`

【问题讨论】:

  • 我认为回显的文本隐藏在某些标记下。你试过查看源代码吗?
  • 可以使用 die 或 exit 函数退出执行并查看输出
  • 你能再具体点吗?我是 php 的初学者。我应该做一个 var_dump 吗?
  • 只需打印 $keyword 变量。检查您是否为该函数传递了 $keyword 参数。因为您没有对该变量执行其他操作。
  • 查找调用搜索功能的位置并尝试从那里打印 $keyword 以确保 $keyword 中有一些值。

标签: php codeigniter search echo keyword


【解决方案1】:

我无法准确理解问题所在,但根据您提出的解决方案,有一个自动加载的 CI 类可以执行您的建议。

http://codeigniter.com/user_guide/libraries/uri.html

所以,对于 http://yoursite.com/format/cat/location/yourKeyword

$keyword = $this->uri->segment(4); // get the 4th segment of my CI URI
echo $keyword; // prints yourKeyword

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-04-23
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多