Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Значение input radio на кнопки (https://javascript.ru/forum/events/85244-znachenie-input-radio-na-knopki.html)

Chile 26.05.2023 14:58

Значение 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="Открыть" />

рони 26.05.2023 15:23

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Chile 26.05.2023 15:29

Цитата:

Сообщение от рони (Сообщение 552079)
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Прошу прощения, вот, посмотрите, отредактировал.

рони 26.05.2023 16:19

Цитата:

Сообщение от Chile
вот, посмотрите,

не могу, ваше описание и код слишком расплывчаты.

Chile 26.05.2023 16:43

Цитата:

Сообщение от рони (Сообщение 552082)
не могу, ваше описание и код слишком расплывчаты.

Сейчас попробую переформулировать :)

Есть список, точнее строки таблицы, каждая из которой представляют собой комбинацию input radio и label. У каждой строки в input, есть value с уникальным id. Строки кликабельны. При клике на одну из строк, значение value должно передаваться на обе кнопки (button, input type=button, submit или что там допустимо использовать). В результате, одна из кнопок должна направлять на url — /delete/(выбранный id), а другая на url — /open/(выбранный id). Только не get-ом, т. к. оно добавит ненужного в url. Ну вот так :)

voraa 27.05.2023 09:54

У <tr> дочерними могут быть только <td> или <th> (но не input и label)
<td> может быть дочерним только у <tr> (но не у label)

Chile 27.05.2023 16:16

Цитата:

Сообщение от voraa (Сообщение 552099)
У <tr> дочерними могут быть только <td> или <th> (но не input и label)
<td> может быть дочерним только у <tr> (но не у label)

Да, но на сервере всё работает и на выходе XHTML 1.1 без вывода ошибок :)

voraa 27.05.2023 16:25

Цитата:

Сообщение от 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"> без "/" в конце. Браузеры просто игнорируют это слеш.

Chile 27.05.2023 19:25

Цитата:

Сообщение от voraa (Сообщение 552103)
Дело не в сервере - ему без разницы какой код выводить, а в браузере. Как он такой 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'); ?>, то у него открылось новое видение и всё выводилось как запланировано :)

Это наверное костыль, но работает же…)

voraa 27.05.2023 19:54

Цитата:

Сообщение от Chile
то у него открылось новое видение и всё выводилось как запланировано

Верится с трудом. в xhtml те же правила для таблиц, что и для html
+ в XHTML теги должны быть большими буквами


Часовой пояс GMT +3, время: 11:27.