これが私の検索機能です:
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`