2016-10-04 4 views
0

Таким образом, у меня есть форма на веб-странице, которая представляет собой ввод с несколькими вариантами выбора, например.Предварительная загрузка нескольких списков выбора

<option name="testData" multiple="multiple"> 
    <select value="1">Option 1</select> 
    <select value="2">Option 2</select> 
    <select value="3">Option 3</select> 
    <select value="4">Option 4</select> 
    <select value="5">Option 5</select> 
</option> 

После отправки формы выбранные параметры сохраняются в массиве (например, 1,2,3)

Вопрос заключается в том, что если бы я вернуться к странице, я хочу, чтобы данные можно разделить назад в отдельные значения и чтобы убедиться, что они были ранее выбраны, они снова выбраны.

Итак, в этом случае значения 1,2,3 будут уже выбраны в меню выбора.

Информация хранится в базе данных и выполняется правильно. Я спрашиваю, как принять значение (1,2,3 и т. Д.) И идентифицировать каждый как выбранный вариант в списке опций. Затем пользователь может внести необходимые изменения.

Если возможно, это можно сделать с помощью jquery? Javascript также будет в порядке.

Позвольте мне знать, если это нужно немного больше объяснять, и я сделаю все возможное, чтобы ответить на любые запросы

Заранее спасибо

+1

Его должен быть '<выберите имя = "Testdata" множественная = "несколько"> <опти on value = "1"> Option 1 'и использовать' .val() 'для установки значения типа' $ ('[name = "testData"]'). val ([1,2,3]) ' – Satpal

+0

Единственная проблема заключается в том, что значение не всегда может составлять 1,2,3, это может быть разное значение каждый раз, например 1,2,5 или даже 1,3,4,5 Но это всегда будет значение, найденное в списке опций – Tomatron

+0

, вы можете сделать вызов ajax для получения массива значений –

ответ

1

Что вы можете сделать, это сохранить массив выбранных параметров в сеансе хранения (если вы хотите, чтобы избежать вызова AJAX, это сделает ваш скрипт быстрее)

// When your user clicks on the submit button 
$("#id_of_your_submit_btn").click(function() { 
    // store the selected options into the sessionStorage 
    sessionStorage.setItem('my_array_of_selected_values', array_of_selected_options); 
}); 

Затем, когда ваша страница будет перезагружена, вы можете проверить погоду этот sessionStorage установлен, а затем выберите динамически параметры ранее выбранных (как Александр предложил)

$(document).ready(function() { 
    console.log("ready!"); 
    var selected_options = sessionStorage.getItem('my_array_of_selected_values'); 
    if(selected_options) { 
     // if something is set into this sessionStorage variable 
     // we select the options dynamically 
     $("[name='testData']").val(selected_options); 
    } 

}); 

NB: проверить, что браузеры поддерживаются целевые https://developer.mozilla.org/fr/docs/Web/API/Window/sessionStorage

+0

Спасибо. Я думаю, что это может сработать, просто чтобы проверить, что произойдет с «my_array_of_selected_values»? Будет ли это просто именем списка выбора? например.'testData' Извините за глупые вопросы! – Tomatron

+0

Не беспокойтесь, '' my_array_of_selected_values'' - это имя переменной sessionStorage. 'testData' - имя вашего HTML-тега опции. переменная 'array_of_selected_options' должна быть установлена ​​с вашим массивом' [1,2,3] 'Надеюсь, что это поможет – maximilienAndile

0

Пожалуйста, попробуйте это,

$("[name='testData']").val([1,2,3]); 

или

$("select").val([1,2,3]);