函数接收出发日期和成人从视图页(它传递值正确,因为我已经检查做回声函数),但从这个函数我不能传递值给另一个函数
public function index()
{
if ($data = $this->input->post('muktinath')) {
$date = $data['departure_on'];
$adult = $data['adult'];
$getNameValue = array(
$date = 'departure_on',
$adult = 'adult',
);
redirect('booking/muktinath/' . $getNameValue);
}
else{
$this->load->view('index');
}
}
这个函数必须接收值
public function muktinath($getNameValue)
{
echo $getNameValue;
// here value must be shown of departure date and adult passed from above
}
您没有分享您得到的错误消息。我敢打赌有好几个。
最大的问题是您不能将array
作为查询字符串的一部分。但是解决方法很简单。
function index()
{
$data = $this->input->post('muktinath');
if($data)
{
//From your question $data seems to be an array already. Just use that!
redirect('booking/muktinath/'.$data['departure_on'].'/'.$data['adult']);
}
else
{
$this->load->view('index');
}
}
接收这些值的函数就是这样定义的。
public function muktinath($date, $name)
{
echo $date . " - " . $name;
}
你将有一个问题如果$date
包含任何斜杠(/)在我认为是一个日期字符串。如果日期是"7/9/2016",名称是"sandesh",那么斜杠将成为URL的一部分。
http://example.com/booking/muktinath/7/9/2016/sandesh
muktinath()
接收后重新格式化。
顺便说一下,你的数组声明是错误的。我想你是故意的。
$getNameValue = array(
'departure_on' => $date,
'adult' => $adult
);
问题是,你刚刚重新创建了$data
已经是什么。但是你不需要$getNameValue
。
你的问题是:
redirect('booking/muktinath/' . $getNameValue);
尝试回显booking/muktinath/'。$getNameValue,你会看到你有一个数组到字符串的错误。重定向是一个url,但您已经从帖子中获得了数据。您不能轻易地将帖子转换为url,也不应该这样做,否则发布数据的首要意义是什么。您如何知道post值中没有非法url字符?
为什么要重定向,只是把你的表单放在正确的页面上,然后处理那里的post数据?
验证,格式化url然后在url调用中使用实际组件不是这样,而是这样....
redirect('booking/muktinath/'.$date.'/'.$adult);
或者更好,不要在这里重定向,而是调用一个函数(一个库或模型或在你的控制器,这取决于你)
public function muktinath($date, $adult)
{
....
return TRUE/FALSE or whatever you need.
}
在控制器中检查返回值,看看该怎么做
if ($this->mylibraryorwhatever->mukinath($date, $adult)
{
// success
redirect('success page'); // or whatever
}
else
{
// fail
.....
}
希望对你有帮助。