Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不是';难道我的数据没有被添加到Mojolicous的仓库里吗?_Javascript_Jquery_Perl_Mojolicious - Fatal编程技术网

Javascript 为什么不是';难道我的数据没有被添加到Mojolicous的仓库里吗?

Javascript 为什么不是';难道我的数据没有被添加到Mojolicous的仓库里吗?,javascript,jquery,perl,mojolicious,Javascript,Jquery,Perl,Mojolicious,我对Mojolicious和藏品有意见,我想我可能只是不理解它的工作方式? 我有一个带有2个组合框的页面,当第一个条目发生变化时,我希望更新第二个条目中的选项 sub devicecommandset { my $self = shift; my $device = $self->param('device') || ''; my @commandsets = $self->db->resultset('CommandSet')->search_command

我对Mojolicious和藏品有意见,我想我可能只是不理解它的工作方式? 我有一个带有2个组合框的页面,当第一个条目发生变化时,我希望更新第二个条目中的选项

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
因此,我添加了一个如下所示的事件处理程序,它调用我的控制器子例程“devicecommandset”,然后将DBIx查询的结果放入一个哈希数组中,并将其添加到我的存储库中

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
然后我只是呈现一些良性文本。我的子例程被调用,并且在“@commandset”中有预期的内容。但是,我无法在浏览器控制台的隐藏中看到它(我正在调试模式下运行)

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
我真的需要修改DOM来填充隐藏吗?基本上,我只是试图从我的请求中获取数据,以填充组合框选项

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
在我的模板中

$(document).ready(function() {

 $('select:not([name*="command"])').live('change', function (e) {
     $.get('devicecommandset', { device: $(this).attr("value") },
          function (data) {
                alert("Made it this far");
           });
      });         
 });
sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
在我的控制器中

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }

您基本上是在日志中打印转储程序,而不是在浏览器中。您的隐藏未在渲染中使用,因为您没有引用它。使用内联渲染类型和“转储程序”辅助程序。 尝试:

sub devicecommandset {
  my $self = shift;
  my $device = $self->param('device') || '';
  my @commandsets = $self->db->resultset('CommandSet')->search_commandsets_by_devicename($device); 
  $self->stash(commandsets => \@commandsets );
  print Dumper(@commandsets);
  $self->render(text => 'success' );
 }
$self->stash(commandset=>\@commandset);
$self->render(内联=>'';