【发布时间】:2014-05-24 00:31:33
【问题描述】:
我正在使用 laravel,我需要根据用户从数据库中选择的内容填充多项选择。 我有 2 个选择框,一个选择类别,然后一旦我选择了类别,第二个选择框就会填充产品。 一旦第二个选择填充了产品,我需要从数据库中获取该产品的所有描述并以表格形式显示,以便对其进行修改。
我做了一个路线:
Route::get('api/dropdown', function(){
$input =Input::get('option');
$prodotti= DB::table('prod')
->join('cat','cat.id_prod','=','prod.id')
->where('cat.id','=',$input)
->select('prod.id as idprod','prod.nome as nomeprod')
->lists('nomeprod','idprod');
return Response::json($prodotti);
});
这应该会发送响应
{{ Form::open(array('url' => 'admin/create/mod', 'files'=> true)) }}
<span>
{{ Form::select('categorie', $categorie,'default', array('id'=> 'a')) }}
<br/>
{{ Form::select('a',array('a'=> 'scegli'),'default', array('id'=> 'b')) }}
Scegli il nome del prodotto
{{Form::text('nome')}}
<br/>
{{Form::label('*Descrizione in Italiano')}}
<br/>
{{Form::textarea('descrizioneit','',array('id'=>'descrizioneit'))}}
{{Form::textarea('descrizioneit','',array('id'=>'previewit', 'readonly'=>'readonly', 'onfocus'=>'this.blur();'))}}
<br/>
{{Form::label('*Descrizione in Inglese')}}
<br/>
{{Form::textarea('descrizioneen','',array('id'=>'descrizioneen'))}}
{{Form::textarea('descrizioneen','',array('id'=>'previewen', 'readonly'=>'readonly', 'onfocus'=>'this.blur();'))}}
<br/>
{{Form::close()}}
这是我的 JavaScript
jQuery(document).ready(function($){
$('#a').change(function(){
$.get("{{ URL::to('api/dropdown')}}",
{ option: $(this).val() },
function(data) {
var model = $('#b');
model.empty();
$.each(data, function(element) {
model.html(element);
});
});
});
});
那我应该做另一个 api 来用我选择的产品描述填充文本框吗?
我会遵循这个想法,但即使是第一部分也行不通。 看来我的javascript代码被忽略了。
【问题讨论】:
-
第一部分是指路线吗?我相信您应该返回 json,因此请尝试
return Response::json($prodotti);并在浏览器中转到该路线。您应该会在屏幕上看到一些文字。 -
是的,我看到了,可能错误在 javascript 中,我不能很好地使用 jquery。我已经添加了 Json 并且我查询 api/dropdown?option=1 并且我从数据库中得到了正确的响应
-
好的,所以我要做的是确保您的事件处理程序正常工作。尝试在
$('#a').change(function(){之后添加alert('working');,它应该在每次更改时发出警报,以确保它正常工作。 -
是的,是的,我已经这样做了,我得到了正确的警报,其中选项的值被选择了
-
可能我以错误的方式访问 jquery 中的数据
标签: javascript php jquery mysql laravel