Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 Django下拉菜单自动提交_Javascript_Ajax_Django - Fatal编程技术网

Javascript Django下拉菜单自动提交

Javascript Django下拉菜单自动提交,javascript,ajax,django,Javascript,Ajax,Django,嗨,伙计们。我有一个表格,上面有所有公司的下拉列表。现在,我想在用户更改公司下拉框中的值而不点击表单上的提交按钮时,显示为该公司工作的所有人员。有人能举个好例子吗 tks不需要Ajax,因为您只需提交表单,无论您是使用Django还是其他服务器端选择,都没有区别,只需使用类似于…: <form name=companiesForm action="whateverurl" method=POST> <p> <select name=companySelect

嗨,伙计们。我有一个表格,上面有所有公司的下拉列表。现在,我想在用户更改公司下拉框中的值而不点击表单上的提交按钮时,显示为该公司工作的所有人员。有人能举个好例子吗


tks

不需要Ajax,因为您只需提交表单,无论您是使用Django还是其他服务器端选择,都没有区别,只需使用类似于…:

<form name=companiesForm action="whateverurl" method=POST>
  <p>
  <select name=companySelect size=1 onChange="companiesForm.submit();">
    <option value="" SELECTED>Choose A Company
    <option value="1">One Company
    <option value="2">Another Company
    <option value="3">A Third Company
  </select>
  </p>
</form>


选择一家公司
一家公司
另一家公司
第三家公司


亚历克斯的答案是一个不错的选择,但这里有一个替代方案。Django和slugs搭配得相当好。目前,使用jquery的不引人注目的javascript非常流行

您可以简单地导航到构造良好的URL,而不是发布值。这样做还有一个额外的好处,那就是使页面更加SEO友好,让人们将页面添加到书签中,并且避免了当有人单击“后退”按钮时关于发布信息的愚蠢错误

请注意,无论是Alex还是我的代码,如果在客户端浏览器上禁用javascript,导航都会中断。最好提供一些页脚链接,指向此组合框在页面上的某个位置(可能是底部)所做的任何操作

(未经测试,可能需要稍微调整)


$(函数(){
//导航到单击事件页面
$('nav#u combo').bind('change',function(){goToPage();});
});
函数goToPage(){
var baseUrl='/your/base/url/';
window.location.href=baseUrl+$('nav_combo').val()
}
...
第1页
第2页

编辑——顺便说一句,我应该提到,您可以轻松地使用插入django的上面的代码。

这更多地是关于ajax/javascript,而不是django。我建议你读一本关于ajax的教程。@Fragsworth没错,它不一定是关于django的。但它也确实不需要javascript或ajax。
<!-- you'll need jquery to make this work -->
<script type="text/javascript">
     $(function() {
          // navigate to page on click event
          $('#nav_combo').bind('change', function() { goToPage(); } );
     });

     function goToPage() {
      var baseUrl = '/your/base/url/';
      window.location.href = baseUrl + $('nav_combo').val()
     }
</script>

...

<form>
     <select id="nav_combo">
          <option value="page-1-slug">Page 1</option>
          <option value="page-2-slug">Page 2</option>
     </select>
</form>