我正在尝试将按钮单击的一些数据发送到控制器,并在视图中的内容div中显示响应。但是,在将数据发送到控制器时,我遇到了问题。这是我想要做的:
test.php的
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$.ajax({
type: 'GET',
url: 'get-response',
dataType: 'json',
data: {
"id": "1"
},
success: function(response){
$('#content').html(response.first);
}
});
});
$("#btn2").click(function(event){
$.ajax({
type: 'GET',
url: 'get-response',
dataType: 'json',
data: {
"id": "2"
},
success: function(response){
$('#content').html(response.first);
}
});
});
});
</script>
<input type="button" id="btn1" value="Button1 Content" />
<input type="button" id="btn2" value="Button2 Content" />
<br>
<div id="content"></div>
route.php
Route::get('ajax-example', function(){
return View::make('test');
});
Route::get('get-response/{id}', array('as'=>'get-response', 'uses'=>'AjaxController@getResult'));
AjaxController.php
public function getResult($id){
if($id==1){
$content = "Hello";
}
else if($id==2){
$content = "World";
}
return Response::json(array('first'=>$content));
}
错误 有人可以帮帮我吗。我现在有点困惑。谢谢:))
答案 0 :(得分:1)
如果您需要获取参数,请执行此操作,
Input::get('id');
和路线
Route::get('get-response', array('as'=>'get-response', 'uses'=>'AjaxController@getResult'));
因为您的ajax请求类似host/get-response?id=5
,而且与Route::get('get-response/{id}'..
不兼容,因为此路由需要host/get-response/5
另一种方法是,您可以按照声明的方式保留路线并更改ajax请求网址
$.ajax({
type: 'GET',
url: 'get-response/'+1,
dataType: 'json',
data: {},
success: function(response){
$('#content').html(response.first);
}
});
答案 1 :(得分:0)
我将路线改为
Route::get('get-response', array('as'=>'get-response', 'uses'=>'AjaxController@getResult'));
并在控制器中添加了
public function getResult(){
$id = $_GET['id'];
现在看起来工作得很好:)