【问题标题】:Laravel responsive drop down listLaravel 响应式下拉列表
【发布时间】:2014-09-08 11:38:48
【问题描述】:

我是 laravel 和 php 的新手,如果这很愚蠢(我是一名 C# 开发人员,正在尝试做一些 Web 开发),我很抱歉,我正在制作一个表单,如果某个选择出现,我希望出现一个下拉列表是在同一个表单中的另一个下拉列表中制作的,我希望有人能告诉我这通常是如何完成的,这是我到目前为止的代码..

<h4>Select Object Type</h4>
{{ Form::select('shapeType', $Shapes) }}
@if($shapeType == "Triangle")
{{ Form::select('TriangleType', $TriangleTypes) }}
@endif

如您所见,第一个下拉列表包含 $Shapes,其中包含形状列表,如果选择了 Square,我想显示另一个下拉列表,您可以在其中选择三角形的类型。因此,从我的控制器中我填充了 $Shapes 和 $TriangleTypes,当前代码给了我一个错误,因为 $shapeType 未声明,这是我阅读前一个下拉列表的糟糕尝试。因此,我们将不胜感激。

谢谢 兰多

【问题讨论】:

  • 您将需要使用 jQuery 来执行此操作(gist.github.com/msurguy/5138788)
  • 谢谢,太好了,读取一个下拉菜单值似乎有点矫枉过正,但如果你就是这样做的,那么我就是这样做的!

标签: php jquery forms select laravel


【解决方案1】:

你不能用直接的 php 来做到这一点,因为 php 在加载时会生成为 html。它无法捕捉到初始下拉列表中的变化。

改为使用 javascript(带或不带 jQuery)来捕获选择选择选项时触发的更改事件。然后使用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
        }
    });
});

【讨论】:

  • 欢迎您。乐意效劳。注意 - 女士会更合适。 :)
  • 道歉女士,我自己从来没有遇到过女性程序员,但有人告诉我她们存在,而且那里都很热 ;)
猜你喜欢
  • 2023-01-09
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多