【发布时间】:2014-05-16 00:49:26
【问题描述】:
我正在尝试从<select> 中获取选定的选项,将其传递给控制器中的方法show(),使用它从数据库中检索数据,然后将其作为json 返回到$.ajax 中的成功方法。这一切都是通过jquery.ajax 发生的。
我的问题
如何获取/接收我从$.ajax 请求传递的数据来操作数据库?
这是我正在使用的代码:
routes.php
Route::post('rate/units',array('as'=>'unitRoute','uses'=>'RateController@show'));
RateController.php
public function show()
{
$row[] = $_POST['deg'];
return json_encode($row);
}
观看次数
<select class="form-control choosedegree" name="sem" id="semester">
<option value="" selected="selected" disabled>Select Semester</option>
<option value="1">Year 1, Semester 1</option>
<option value="2">Year 1, Semester 2</option>
<option value="3">Year 2, Semester 1</option>
<option value="4">Year 2, Semester 2</option>
<option value="5">Year 3, Semester 1</option>
<option value="6">Year 3, Semester 2</option>
<option value="7">Year 4, Semester 1</option>
<option value="8">Year 4, Semester 2</option>
</select>
<script>
$(document).ready(function() {
$('select#semester').on('change', function() {
var optionSelected = $(this).find("option:selected");
semesterSelected = optionSelected.val();
console.log(semesterSelected);
$.ajax({
type: "POST",
cache: false,
url : "rate/units",
data: { sem : semesterSelected },
success: function(data) {
var obj = $.parseJSON(data);
var i = 0;
console.log(data.iyo);
$.each(obj, function() {
console.log(this[0]);
console.log(this[1]);
console.log(this[2]);
console.log(this[3]);
console.log(this[4]);
i++;
});
}
})
.done(function(data) {
alert('done');
})
.fail(function(jqXHR, ajaxOptions, thrownError) {
alert('No response from server');
});
});
});
</script>
【问题讨论】:
-
使用
return Response::json($row));而不是json_encode。我还没有确认,但我怀疑它会设置正确的标题。