Итак, я видел несколько похожих сообщений, но ничего не нашел для Rails. Мой вопрос похож на: Keep a Select Box Selected after Submit, и ответ в порядке, что я хочу сделать, кроме как быть PHP.Желание сохранить выбранную опцию html после отправки и перезагрузки страницы
Все, что я хочу сделать, это то, что пользователь выбирает параметры фильтра и перезагружает последний выбранный вариант, который остается выбранным, вместо того, чтобы идти по умолчанию, который находится на данный момент. Я использую Rails, и у меня есть Ajax и jQuery как жизнеспособные варианты для этого. Прямо сейчас перезагрузка и фильтрация страницы работают, но я хочу, чтобы выбранная опция оставалась выбранной после перезагрузки. Я хотел сначала загрузить часть моего стола с информацией с Ajax, но я думаю, что это было бы над моей головой.
Моя таблица с вариантами (да, я знаю, что это грязный Я новичок в веб-приложений, так что если есть какие-либо несвязанные предложения, которые я скрываю):
<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>
РНР Ответ: (я тоже не заботиться об этом, потому что он генерирует варианты).
<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
Любая помощь будет весьма признателен!
Попробуйте этот код, который я редактировал и дайте мне знать. –