Как связать один элемент select с другим оператором select - PullRequest
0 голосов
/ 17 октября 2018

У меня есть два выбранных HTML-элемента внутри формы.Эти два элемента выбора создаются всякий раз, когда пользователь нажимает кнопку «Добавить».Таким образом, есть несколько экземпляров этой пары операторов выбора html внутри формы.Код выглядит следующим образом:

<form action="create.php" method="POST">
  <div class="user_role">
    <select name="users[]">
       <option value="1"> John </option>
       <option value="2"> Doe </option>
    </select>
    <select>
       <option value="1"> Browser </option>
       <option value="2"> Project Manager </option>
    </select>
  </div>
  <div>
     <input type="button" name="add" id="add" value="Add User" 
  </div>
  <div>
     <input type="submit" name="submit" value="submit" />
  </div>
</form>

Если я нажму кнопку отправки, массив $ _POST содержит следующие значения:

Array ( 
    [users] => Array ( 
                       [0] => 1  
                     )  
    [submit] => submit 
  )

Я не знаю, что поместить наАтрибут "name" второго выбора, так что я могу соединить два оператора выбора.

Я хочу добиться того, чтобы я хотел, чтобы в качестве второго роли было выбрано значениезначение соответствующего пользователя при первом выборе, когда оно хранится в глобальном массиве $ _POST.Пример:

User: John     <-- first html select statement

role: Browser  <-- second html select statement
___________________________________________________

User: Doe  <-- first html select statement

role: Project Manager  <-- second html select statement

1 Ответ

0 голосов
/ 17 октября 2018

Вы можете попробовать что-то вроде этого:

<!DOCTYPE html>
<html>
<body>

<form action="/action_page.php">
    <select name="users[1][name]">
       <option value="1"> John </option>
       <option value="2"> Doe </option>
    </select>
    <select name="users[1][role]">
       <option value="1"> Browser </option>
       <option value="2"> Project Manager </option>
    </select>
<div>
     <input type="submit" name="submit" value="submit" />
  </div>
</form>

</body>
</html>

Отправленные данные формы будут выглядеть следующим образом:

users[1][name]=1&users[1][role]=1&submit=submit 

Если вы хотите добавить другой набор выбранных входов в качестве пользователей -просто увеличьте значение.Таким образом, следующий добавленный набор будет выглядеть следующим образом:

<!DOCTYPE html>
<html>
<body>

<form action="/action_page.php">
    <select name="users[1][name]">
       <option value="1"> John </option>
       <option value="2"> Doe </option>
    </select>
    <select name="users[1][role]">
       <option value="1"> Browser </option>
       <option value="2"> Project Manager </option>
    </select>
<!-- Newly added by js -->
    <select name="users[2][name]">
       <option value="1"> John </option>
       <option value="2"> Doe </option>
    </select>
    <select name="users[2][role]">
       <option value="1"> Browser </option>
       <option value="2"> Project Manager </option>
    </select>
<div>
     <input type="submit" name="submit" value="submit" />
  </div>
</form>

</body>
</html>

Если возникнет проблема с определением индекса для вставки при создании, вам нужно будет изменить функцию JS "add".

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

Вы также можете посчитать количество выборок и получить правильное количество следующего элемента. Вы также можете изменить структуру своей формы, чтобы сохранить оба выбора в div с некоторым классом и выполнить подсчет элементов на нем.

Вот несколько советов по jsFiddle с ванильным JavaScript: https://jsfiddle.net/mrba8dLy/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...