sql Laravel中的动态下拉,假设你有多个下拉(选择),你点击一个而另一个的内容需要是dyn

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Laravel中的动态下拉,假设你有多个下拉(选择),你点击一个而另一个的内容需要是dyn相关的知识,希望对你有一定的参考价值。

<h1>Dropdown demo</h1>
      	{{ Form::open() }}
    		    <select id="make" name="make">
    		    	<option>Select Car Make</option>
    		        <option value="1">Toyota</option>
    		        <option value="2">Honda</option>
    		        <option value="3">Mercedes</option>
    		    </select>
    		    <br>
    		    <select id="model" name="model">
    		    	<option>Please choose car make first</option>
    		    </select>
    		{{ Form::close();}}
jQuery(document).ready(function($){
  	$('#make').change(function(){
			$.get("{{ url('api/dropdown')}}", 
				{ option: $(this).val() }, 
				function(data) {
					var model = $('#model');
					model.empty();
 
					$.each(data, function(index, element) {
			            model.append("<option value='"+ element.id +"'>" + element.name + "</option>");
			        });
				});
		});
	});
Route::get('api/dropdown', function(){
  $input = Input::get('option');
	$maker = Maker::find($input);
	$models = $maker->models();
	return Response::eloquent($models->get(['id','name']));
});
<?php

   class Model extends Eloquent {
      public function maker(){
         return $this->belongs_to('Maker');
      }
   }

?>
<?php

   class Maker extends Eloquent {
      public function models(){
         return $this->has_many('Model');
      }
   }

?>
CREATE TABLE `makers` (
  `id` int(10) unsigned NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `makers`
--

INSERT INTO `makers` (`id`, `name`, `description`, `created_at`, `updated_at`) VALUES
(1, 'Toyota', 'Toyota cars', '2013-03-11 00:00:00', '2013-03-11 00:00:00'),
(2, 'Honda', 'Honda cars', '2013-03-11 00:00:00', '2013-03-11 00:00:00'),
(3, 'Mercedes', 'Mercedes cars', '2013-03-11 00:00:00', '2013-03-11 00:00:00');

-- --------------------------------------------------------

--
-- Table structure for table `models`
--

CREATE TABLE `models` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `maker_id` int(10) unsigned NOT NULL,
  `name` varchar(255) NOT NULL,
  `description` varchar(255) NOT NULL,
  `created_at` datetime NOT NULL,
  `updated_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


INSERT INTO `models` (`id`, `maker_id`, `name`, `description`, `created_at`, `updated_at`) VALUES
(1, 2, 'Honda S2000', '', '2013-03-11 22:32:07', '2013-03-11 22:32:07'),
(2, 2, 'Civic', '', '2013-03-11 22:32:46', '2013-03-11 22:32:46'),
(3, 2, 'Fit', '', '2013-03-11 22:34:35', '2013-03-11 22:34:35'),
(4, 1, 'asdf asdf', '', '2013-03-11 22:35:31', '2013-03-11 22:35:31'),
(5, 1, 'Yaris', '', '2013-03-11 22:36:01', '2013-03-11 22:36:01'),
(6, 1, 'Corolla', '', '2013-03-11 22:36:23', '2013-03-11 22:36:23'),
(7, 1, 'Camry', '', '2013-03-11 22:36:31', '2013-03-11 22:36:31'),
(8, 3, 'SLK 500', '', '2013-03-11 22:36:47', '2013-03-11 22:36:47'),
(9, 3, 'C300', '', '2013-03-11 22:36:50', '2013-03-11 22:36:50'),
(10, 2, 'another item', '', '2013-03-11 22:36:52', '2013-03-11 22:36:52');

以上是关于sql Laravel中的动态下拉,假设你有多个下拉(选择),你点击一个而另一个的内容需要是dyn的主要内容,如果未能解决你的问题,请参考以下文章

Laravel ErrorException,执行多个动态下拉

在 Laravel 中刷新页面后保留下拉列表中的动态值

Laravel 中的动态相关下拉选择

Laravel 中的动态相关下拉列表

Laravel 8 中的动态相关下拉菜单

使用 laravel 在数据库中不保存多个下拉值的第二个下拉值