我正在尝试使用以下代码从kohana 3中的url获取参数但是fire bug给了我一条错误消息“invalid regular expression flag n” 代码是:
<?php defined('SYSPATH') or die('No direct script access.');
class Controller_Test extends Controller_Template
{
public function action_index()
{
$this->template = View::factory('par');
$this->template->content = View::factory('par');
}
public function get()
{
$param1 = $this->request->param('param1');
$param2 = $this->request->param('param2');
$param3 = $this->request->param('param3');
echo "This is param1: ".$param1;
echo "This is param2: ".$param2;
echo "This is param3: ".$param3;
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php $x=1;
$y=2;
$z=3;
?>
<input type="button" value = "button" onClick=<?php echo url::site('test/get'.$x);?> />
</body>
</html>
Route::set('default', '(<controller>(/<action>(/<param1>)(/<param2>)(/<param3>)))',
array(
'param1' => '\d+',
'param2' => '\d+',
'param3' => '\d+',
))
->defaults(array(
'controller' => 'test',
'action' => 'index',
));
请帮我解决这个问题。
答案 0 :(得分:0)
看起来浏览器看起来像这样:
onClick=/param/index.php
onClick
属性被解释为JavaScript,JavaScript中的/param/index.php
试图成为正则表达式文字,后跟属性访问。正则表达式为/param/
,其中包含修饰符i
,n
,d
,e
和x
。 i
表示不区分大小写的匹配,以便通过;那么你就是一个错误,因为JavaScript正则表达式没有n
修饰符。
我认为您正在尝试将按钮设置为链接,因此您需要为window.location
添加一些引号和作业:
<input type="button" value = "button" onClick="window.location = '<?php echo url::site('test/get'.$x);?>'" />
这应该让你更接近你想去的地方,或者至少让你超越神秘的“无效的正则表达式标志n”错误。