关于CodeIgniter控制器函数传递的一个问题

2013-07-28 11:52:40 +08:00
 Windweller
。。。有点难解释。。准确说是我先在一个页面用表格提交一个数据,在CodeIgniter的Controller里面的index方法里可以用$_POST['xx']读出来,也可以返还给新页面(load->view()),但是在新页面上,我用ajax调用了这个controller的另一个方法,该方法会返还这个之前提交的数据(是一堆字符串)。

然后我发现无论怎么试。。这个字符串总是为空。

class Search extends CI_Controller {

public $search_string;


public function index()
{
$this->search_string = $_POST['search'];

$data = array(....);

$this->load->view('template', $data);
}

public function init()
{
$query = $this->search_model->get_all_posts();
echo json_encode($query);
}

public function returnSearchString()
{
if (!is_null($this->search_string)) {
echo $this->search_string;
}
}
}

因为我在试用AngularJS。。这个框架的问题是,不能用document.getElementById()去读取隐藏文本框的值(所以我就不能把想要传递的值传到页面后再用JS来读。。)

我的JS代码会访问search/returnSearchString,然后接收返回值。但每次返回值都是空。。。。就算是我直接在这个returnSearchString()方法里面放上$_POST['search'],也是读取不到值。。虽然可以用GET解决(用JS去读地址栏)。。但我还是想用POST的方法提交。。

请问有什么方法可以解决这种问题么- -!
3023 次点击
所在节点    程序员
1 条回复
xlmo
2013-07-28 13:52:50 +08:00
returnSearchString的开头加上这句试试:
$this->search_string = $this->input->get_post('search');

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77211

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX