Ik heb een tabel, met 3 rijen. In iedere rij staat een radio. Ik wil dat als er ergens in een rij wordt geklikt dat hij de radio in die rij selecteerd. Hoe doe ik dat?

Ik weet dat het kan want bij PHPMyAdmin hebben ze het ook. Doe ik dit met javascript? Of wat?

BVD, Tdr93
even ter informatie, bij phpMyAdmin zijn het checkboxjes. Maar dit zul je op de een of andere manier met JavaScript moeten oplossen inderdaad. Helaas ben ik hier niet zo bekend in.
geen tabellen gebruiken maar divs in combinatie met <label> en </label>
Dit is nu juist een geval waarin het gebruik van tabellen semantisch correct is. Je laat een rijtje tabellarische gegevens zien, dus ga niet lopen klooien met labels en divs.

Ik heb een voorbeeld gemaakt, maar het is nog niet klaar. Je kunt nu namelijk alleen de checkbox aan- of uitvinken door op de tabelrij te klikken. Klikken op de checkbox zelf heeft geen resultaat. Ik geef alvast de code, zodat iedereen kan kijken:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<title>Select checkbox</title>
	
	<style type="text/css">
		table {
			border: 1px solid black;
		}
		td {
			border: 1px solid black;
			padding: 5px;
			font: 12px verdana;
		}
	</style>
	<script type="text/javascript">
		function init () {
			var x = document.getElementsByTagName ('tr');
			var n = x.length;
			for (i = 0; i < n; i++) {
				x[i].onclick = function () {
					return handle_checkbox (this);
				}
			}
		}
		function handle_checkbox (obj) {
			var x = obj.getElementsByTagName ('input')[0];
			(x.checked) ? (x.checked = false) : (x.checked = true);
		}
		window.onload = init;
	</script>
</head>

<body>
	<table>
		<tr>
			<td><input name="delete[]" type="checkbox"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="checkbox"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="checkbox"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="checkbox"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
	</table>
</body>
</html>
Sorry, je was me voor, ik ga even kijken wat ik kan doen.

EDIT: Het werkt nu bij 1 van de 3 radio's. Zou je een iets specefieker voorbeeld kunnen geven voor radio's?

BVD, Tdr93
Iets specifieker? Ik heb je net een hele code voorgekauwd!!!
Hier, vanwege de kerstgedachte:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<title>Select checkbox</title>
	
	<style type="text/css">
		table {
			border: 1px solid black;
		}
		td {
			border: 1px solid black;
			padding: 5px;
			font: 12px verdana;
		}
	</style>
	<script type="text/javascript">
		function init () {
			var x = document.getElementsByTagName ('tr');
			var n = x.length;
			for (i = 0; i < n; i++) {
				x[i].onclick = function () {
					return handle_radio (this);
				}
			}
		}
		function handle_radio (obj) {
			var x = obj.getElementsByTagName ('input')[0];
			(x.checked) ? (x.checked = false) : (x.checked = true);
		}
		window.onload = init;
	</script>
</head>

<body>
	<table>
		<tr>
			<td><input name="delete[]" type="radio"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="radio"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="radio"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
		<tr>
			<td><input name="delete[]" type="radio"></td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
			<td>dit is een rij in de tabel</td>
		</tr>
	</table>
</body>
</html>
Het werkt niet. Je kunt alleen de eerste radio button selecteren, bij mij dan, dat komt omdat ik veel tabellen op die pagina nodig heb. Hij pakt dus alle tr's over de hele pagina dus in iedere tr die je aanklikt wordt hij geselecteerd of gedeselecteerd. Hoe los ik dit op? Mss met een naam voor de tabel waarin hij dat mag doen? En die naam ergens opgeven in het javascript?

Dit is de tabel waar hoe het er uit ziet:

	<script type="text/javascript">
		function init () {
			var x = document.getElementsByTagName ('tr');
			var n = x.length;
			for (i = 0; i < n; i++) {
				x[i].onclick = function () {
					return handle_checkbox (this);
				}
			}
		}
		function handle_checkbox (obj) {
			var x = obj.getElementsByTagName ('input')[0];
			(x.checked) ? (x.checked = false) : (x.checked = true);
		}
		window.onload = init;
	</script>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form name="avatar" action="userpanel.php?mode=avatar" method="POST" enctype="multipart/form-data">
<tr>
<td valign="top"><p class="content"><input name="av" type="radio" value="1" checked="checked" class="middle" /> Avatar nu:</p></td>
<td><p class="content"><img src="images/forum/avatars/images/avatar_droes.png" /><br /><br /></p></td>
</tr>
<tr>
<td valign="top"><input name="av" type="radio" value="2" class="middle" /> Avatar uploaden:</td>
<td valign="top"><input name="avatar_upload" type="file" size="25" class="middle" /><br /><br /></td></tr>
<tr>
<td valign="top"><input name="av" type="radio" value="3" class="middle" /> Standaard avatar:</td>
<td valign="top">Klik hier voor de standaart avatars: <a href="avatars.php" onClick="smiliesPopup=window.open(this.href, 'smilies', 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, width=241, height=320'); return false;">Standaart avatars</a><br>Gekozen avatar: <input type="text" value="" id="avatar" name="avatar" size="25" class="middle"></td>
</tr>
<tr>
<td>&nbsp;</td><td><input name="submit" type="submit" value="Edit" /></td>
</tr>
</table>

Dat staat dus tussen nog een aantal tabellen. Hoe los ik dit op. Alvast bedankt voor jullie hulp!
Voorlopig heb ik je genoeg geholpen vandaag. Studeer nu eerst zelf verder op het probleem.
Waarmee zou ik kunnen zoeken op Google??

Mss kom ik dan verder, ik weet namelijk zelf niet echt waar ik op kan zoeken.
mod-edit:

Bumpen
Bumpen is het herhaaldelijk posten in je eigen topic om hem weer bovenaan in de lijst te krijgen. Omdat het zéér opdringerig overkomt is bumpen is pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.

Reageren