所以我見過一些類似的帖子,但沒有我能找到的Rails。 我的問題類似於:Keep a Select Box Selected after Submit和答案是我想要做的除了作爲PHP。想要在提交和頁面重新加載後保留選定的html選項
我想要做的就是在用戶選擇過濾器選項並重新加載上次選擇的選項後保持選中狀態,而不是進入目前默認的狀態。我正在使用Rails,並且我有Ajax和jQuery作爲可行選項來執行此操作。現在頁面重新加載和過濾所有的作品,但我只想要選擇的選項在重新加載後保持選擇。剛開始時我正在用Ajax的信息重新加載我的表中的一部分,但我認爲這將超過我的頭。
我與選項(是的,我知道這是凌亂我是新來的Web應用程序,所以如果有任何不相關的建議,我願意)表:
<html>
<table class= "table table-bordered"%>
<thead>
<tr>
<th>Status:</th>
<th>Clec ID:</th>
<th>Task ID:</th>
<th>Task Type:</th>
<th>Hostname:</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<form action="/task_queues" method="GET">
<td>
<select name="by_status">
<option value="">All</option>
<option value="Completed">Completed</option>
<option value="Pending">Pending</option>
<option value="Failed">Failed</option>
</select>
</td>
<td>
<select name="by_clecid">
<option value="">All</option>
<% @clecids.each do |clecid| %><option value="<%= clecid %>"><%= clecid %></option><% end %>
</select>
</td>
<td>
<select name="by_taskid">
<option value="">All</option>
<% @taskids.each do |taskid| %><option value="<%= taskid %>"><%= taskid %></option><% end %>
</select>
</td>
<td>
<select name="by_tasktype">
<option value="">All</option>
<% @tasktypes.each do |tasktype| %><option value="<%= tasktype %>"><%= tasktype %></option><% end %>
</select>
</td>
<td>
<select name="by_hostname">
<option value="">All</option>
<% @hostnames.each do |hostname| %><option value="<%= hostname %>"><%= hostname %></option><% end %>
</select>
</td>
<td><input type="submit"/>
</td>
</form>
</tr>
</tbody>
</table>
PHP的答案:(我也不要關心這一點,因爲他生成的選項)。
<select name="test">
<?php
$options = array(1 => 'Option 1', 2 => 'Option 2', 3 => 'Option 3');
foreach ($options as $key => $value) {
echo '<option value="' . $key . '"' . ($key == $_GET["test"] ? ' selected="selected"' : '') . '>' . $value . '</option>';
} ?>
</select>
我也懷疑你們需要看到這一點,但這裏是一些控制的,希望能夠讓你們讓我混亂的一些感覺:
class TaskQueuesController < ApplicationController
before_action :set_task_queue, only: [:show, :edit, :update, :destroy]
has_scope :by_status, :by_tasktype, :by_taskid, :by_hostname, :by_clecid
def index
@task_queues = apply_scopes(TaskQueue).all
@task_queues = @task_queues.paginate(:page => params[:page], :per_page => 30)
@clecids = TaskQueue.uniq.pluck(:clecid).sort
@taskids = TaskQueue.uniq.pluck(:taskid).sort
@tasktypes = TaskQueue.uniq.pluck(:tasktype).sort
@hostnames = TaskQueue.uniq.pluck(:hostname).reject!(&:blank?)
end
任何幫助將不勝感激!
試試我編輯過的代碼並讓我知道。 –