26.05.2023, 14:58
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Значение input radio на кнопки
Добрый день
Помогите пожалуйста реализовать такую штуку. Есть список с радио-переключателями. Есть две кнопки «Удалить» и «Открыть». Нужно, чтобы при выборе элемента списка с радио-переключателем в кнопки передавалось вот такое /delite/1, /delite/2, /delite/3 etc и /open/1, то есть передаваться должно только id (т. е. цифра после последнего слэша).
Список выводится динамически, через цикл, id присваивается, понятное дело, так же. Нужно передать значение value="<?= $data['id'] ?>".
Как такое можно сделать? Я знаю, что javascript почти всемогущ, но я в нём не бум-бум, а на php видимо такого не нарисуешь
Вот мой код:
<?php foreach ($list as $val): ?>
<tr>
<input type="radio" id="<?= $val['id'] ?>" name="plant" value="<?= $val['id'] ?>" />
<label for="<?= $val['id'] ?>">
<td><?= $val['subfamilia'] ?></td>
<td><?= $val['number'] ?></td>
<td><?= $val['taxon'] ?></td>
</label>
</tr>
<?php endforeach ?>
<input type="submit" name="delete" value="Удалить" />
<input type="submit" name="open" value="Открыть" />
Последний раз редактировалось Chile, 26.05.2023 в 15:35.
|
|
26.05.2023, 15:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
|
26.05.2023, 15:29
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Сообщение от рони
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]
О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
|
Прошу прощения, вот, посмотрите, отредактировал.
|
|
26.05.2023, 16:19
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,129
|
|
Сообщение от Chile
|
вот, посмотрите,
|
не могу, ваше описание и код слишком расплывчаты.
|
|
26.05.2023, 16:43
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Сообщение от рони
|
не могу, ваше описание и код слишком расплывчаты.
|
Сейчас попробую переформулировать
Есть список, точнее строки таблицы, каждая из которой представляют собой комбинацию input radio и label. У каждой строки в input, есть value с уникальным id. Строки кликабельны. При клике на одну из строк, значение value должно передаваться на обе кнопки (button, input type=button, submit или что там допустимо использовать). В результате, одна из кнопок должна направлять на url — /delete/(выбранный id), а другая на url — /open/(выбранный id). Только не get-ом, т. к. оно добавит ненужного в url. Ну вот так
|
|
27.05.2023, 09:54
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,753
|
|
У <tr> дочерними могут быть только <td> или <th> (но не input и label)
<td> может быть дочерним только у <tr> (но не у label)
|
|
27.05.2023, 16:16
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Сообщение от voraa
|
У <tr> дочерними могут быть только <td> или <th> (но не input и label)
<td> может быть дочерним только у <tr> (но не у label)
|
Да, но на сервере всё работает и на выходе XHTML 1.1 без вывода ошибок
|
|
27.05.2023, 16:25
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,753
|
|
Сообщение от Chile
|
Да, но на сервере всё работает и на выходе XHTML 1.1 без вывода ошибок
|
Дело не в сервере - ему без разницы какой код выводить, а в браузере. Как он такой html код воспримет, какое DOM дерево построит, и возможно ли с ним будет работать.
Вот как это будет выглядеть
<body>
<table>
<tr>
<input type="radio" id="val1" name="plant" value="1" />
<label for="val1">
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</label>
</tr>
<tr>
<input type="radio" id="val2" name="plant" value="2" />
<label for="val2">
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</label>
</tr>
</table>
</body>
Браузер воспринял это как
<body>
<input type="radio" id="val1" name="plant" value="1">
<label for="val1">
</label>
<input type="radio" id="val2" name="plant" value="2">
<label for="val1">
</label>
<table>
<tbody>
<tr>
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</tr>
<tr>
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</tr>
</tbody>
</table>
</body>
А в XHTML 1.1 вообще не было элемента <label>
XHTML вообще уже мертвый язык. Поэтому сейчас можно (нужно) писать на HTML
<input type="radio" id="val1" name="plant" value="1"> без "/" в конце. Браузеры просто игнорируют это слеш.
Последний раз редактировалось voraa, 27.05.2023 в 17:01.
|
|
27.05.2023, 19:25
|
|
Аспирант
|
|
Регистрация: 10.02.2016
Сообщений: 46
|
|
Сообщение от voraa
|
Дело не в сервере - ему без разницы какой код выводить, а в браузере. Как он такой html код воспримет, какое DOM дерево построит, и возможно ли с ним будет работать.
Вот как это будет выглядеть
<body>
<table>
<tr>
<input type="radio" id="val1" name="plant" value="1" />
<label for="val1">
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</label>
</tr>
<tr>
<input type="radio" id="val2" name="plant" value="2" />
<label for="val2">
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</label>
</tr>
</table>
</body>
Браузер воспринял это как
<body>
<input type="radio" id="val1" name="plant" value="1">
<label for="val1">
</label>
<input type="radio" id="val2" name="plant" value="2">
<label for="val1">
</label>
<table>
<tbody>
<tr>
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</tr>
<tr>
<td>subfamilia</td>
<td>number</td>
<td>taxon</td>
</tr>
</tbody>
</table>
</body>
А в XHTML 1.1 вообще не было элемента <label>
XHTML вообще уже мертвый язык. Поэтому сейчас можно (нужно) писать на HTML
<input type="radio" id="val1" name="plant" value="1"> без "/" в конце. Браузеры просто игнорируют это слеш.
|
А вы знаете, действительно, браузер выталкивал это всё из td: и input и label были вне table. Но когда я указал <?php header('Content-type: application/xhtml+xml'); ?>, то у него открылось новое видение и всё выводилось как запланировано
Это наверное костыль, но работает же…)
|
|
27.05.2023, 19:54
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,753
|
|
Сообщение от Chile
|
то у него открылось новое видение и всё выводилось как запланировано
|
Верится с трудом. в xhtml те же правила для таблиц, что и для html
+ в XHTML теги должны быть большими буквами
Последний раз редактировалось voraa, 27.05.2023 в 19:59.
|
|
|
|