嘿傢伙。我爲所有公司提供了一個下拉式表單。現在,當用戶更改公司下拉框中的值而不觸碰表單上的提交按鈕時,我想顯示所有爲該公司工作的人員。任何人都有一個很好的例子嗎?Django Dropdown Auto提交
TKS
嘿傢伙。我爲所有公司提供了一個下拉式表單。現在,當用戶更改公司下拉框中的值而不觸碰表單上的提交按鈕時,我想顯示所有爲該公司工作的人員。任何人都有一個很好的例子嗎?Django Dropdown Auto提交
TKS
亞歷克斯的答案是一條很好的路線,但這裏有一個選擇。 Django和slu go相處得很好。和jquery的不顯眼的JavaScript現在是髖關節。
而不是發佈一個值,你可以簡單地導航到一個構造良好的URL。這還有一個好處,就是讓頁面更加容易SEO,讓人們可以將頁面添加到書籤中,並且還可以避免有人點擊後退按鈕時POST的信息的愚蠢錯誤。
請注意,無論是代碼位,Alex還是我的代碼,如果在客戶端瀏覽器上禁用javascript,導航將會中斷。提供一些頁腳鏈接可能是一個不錯的主意,無論這個組合框在頁面上的什麼位置(底部也許)。
(未經測試,可能需要一些輕微的調整)
<!-- 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>
編輯 - 順便說一句,我應該提到,你可以很容易地使用上面插入Django的object_detail generic view的代碼。
有趣的概念,+1 – 2009-09-21 02:18:04
沒有阿賈克斯一定需要,因爲你可以提交表單,並且無論你唱的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>
這是關於ajax/javascript比django更多。我建議你閱讀關於ajax的教程。 – Fragsworth 2009-09-20 22:44:23
@Fragsworth是真的,它不一定是django。但它也不需要JavaScript或Ajax。 – 2009-09-21 02:20:29