I have a Javascript code that hides HTML elements based on a value in a check box. The checkbox and other elements are in tabular form which is populated by values from a database. This is an attendance register. The problem I have is that Javascript runs well for the first row but does run to the subsequent ones.
This is the Javascript:
<script language="JavaScript" type="text/javascript">
function initiallyHideElements() {
var absent = document.getElementById('emppresent').value;
var reason = document.getElementById('absentReason');
var remarks = document.getElementById('remarks');
var timein = document.getElementById('timein');
var timeout = document.getElementById('timeout');
reason.style.visibility = 'hidden';
remarks.style.visibility = 'hidden';
timein.style.visibility = 'visible';
timeout.style.visibility = 'visible';
}
function hideShowElements(){
var absent = document.getElementById('emppresent').value;
var reason = document.getElementById('absentReason');
var remarks = document.getElementById('remarks');
var timein = document.getElementById('timein');
var timeout = document.getElementById('timeout');
if (absent == "Yes") {
reason.style.visibility = 'visible';
remarks.style.visibility = 'visible';
timein.style.visibility = 'hidden';
timeout.style.visibility = 'hidden';
} else {
reason.style.visibility = 'hidden';
remarks.style.visibility = 'hidden';
timein.style.visibility = 'visible';
timeout.style.visibility = 'visible';
}
}
</script>
Now here is the point of the loop.
<form action="processAttRegister.php" method="post" name="frmAttregister">
<table width="95%" border="1" align ="center" cellpadding="0" cellspacing="0" id="projectOverview">
<tr>
<th width="72">Date</th>
<th width="144">Name</th>
<th width="46">Absent</th>
<th width="143">Reason For Absence</th>
<th width="42">Time In</th>
<th width="42">Time Out</th>
<th width="152">Remarks</th>
<?php
$atts = mysql_query("SELECT * FROM tblemployeedata WHERE grade>4 AND section=3");
while($att = mysql_fetch_array($atts)) {
echo '<script type="text/javascript">initiallyHideElements();</script>';
?>
<tr id="projectlist">
<td><input name="date" id="date"type="text" value="<?php echo date("d-m-Y");?>" readonly size="12"/></td>
<td><input name="name" id="name"type="text" value="<?php echo $att["firstname"]." ".$att["surname"];?>" readonly /></td>
<td>
<div align="center">
<input name="emppresent" id="emppresent" type="checkbox" value="Yes" onclick="hideShowElements()"/>
</div>
</td>
<td>
<select name="absentReason" id="absentReason">
<option value="value" selected="selected">-</option>
<option value="Funeral">Attending Funeral</option>
<option value="Sick">Sick</option>
<option value="Other">Other</option>
</select>
</td>
<td><input type="text" name="timein" id="timein" size="7"/></td>
<td><input type="text" name="timeout" id="timeout" size="7"/></td>
<td>
<textarea name="remarks" id="remarks" cols="20" rows="3"></textarea>
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="7">
<div align="center">
<input name="postAttendance" type="submit" id="postAttendance" value="Register Project" align="center" />
</div>
</td>
</tr>
</table>
</form>