我是laravel和php的新手,如果这是愚蠢的话我很道歉(我是一个C#dev尝试做一些网页开发),我正在制作一个表单,我想要一个下拉列表,如果某个选择出现是在同一个表格中的另一个下拉列表中制作的,我希望有人能告诉我这是怎么做的,到目前为止这是我的代码..
<h4>Select Object Type</h4>
{{ Form::select('shapeType', $Shapes) }}
@if($shapeType == "Triangle")
{{ Form::select('TriangleType', $TriangleTypes) }}
@endif
正如您所看到的,第一个下拉列表包含$ Shapes,其中包含一个形状列表,如果选择Square,我想显示另一个下拉列表,您可以在其中选择它是什么类型的三角形。所以从我的控制器我填充$ Shapes和$ TriangleTypes,当前代码给我一个错误,因为$ shapeType是未声明的,这是我尝试阅读上一个下拉列表的不良尝试。所以一些帮助将非常感激。
由于 兰多
答案 0 :(得分:0)
你不能用直接的php做这个,因为php在加载时生成为html。它无法捕捉初始下拉的变化。
而是使用javascript(带或不带jQuery)来捕获选择select选项时触发的change事件。然后使用ajax将所选数据发送到服务器,并根据发送的数据检索正确的下拉数据。
代码示例 - 请注意这是未经测试的,可能会有一些错误,但希望它足以让您入门。
Route::get('/shapes', array(
'uses' => 'ExampleController@myShapes'
));
class ExampleController extends BaseController{
public function myShapes{
if(Request::ajax()){
$type = Input::get('shapeType');
switch($shapeType){
case 'triangle':
//get triangle data
break;
case 'square':
//get square data
break;
default:
//invalid input sent
break;
}
return $data;
}
}
}
$('#shapeType').change(function(){
shapeValue = //get value from the selected item
$.ajax({
url: '/shapes',
data: shapeValue
success: function(result){
//change/update drop down to result data
}
});
});