Suggestion:
<form action="<?php echo $_SERVER['PHP_SELF']?>?action=go" method="post" enctype="multipart/form-data">
<input type="image" src="./images/staroff.gif" name="va" id="a" onmouseover="a.src='./images/star.gif';" onmouseout="a.src='./images/staroff.gif';" />
<input type="image" src="./images/staroff.gif" name="vb" id="b" onmouseover="a.src='./images/star.gif'; b.src='./images/star.gif';" onmouseout="a.src='./images/staroff.gif'; b.src='./images/staroff.gif';" />
<input type="image" src="./images/staroff.gif" name="vc" id="c" onmouseover="a.src='./images/star.gif'; b.src='./images/star.gif'; c.src='./images/star.gif';" onmouseout="a.src='./images/staroff.gif'; b.src='./images/staroff.gif'; c.src='./images/staroff.gif';" />
<input type="image" src="./images/staroff.gif" name="vd" id="d" onmouseover="a.src='./images/star.gif'; b.src='./images/star.gif'; c.src='./images/star.gif'; d.src='./images/star.gif';" onmouseout="a.src='./images/staroff.gif'; b.src='./images/staroff.gif'; c.src='./images/staroff.gif'; d.src='./images/staroff.gif';" />
<input type="image" src="./images/staroff.gif" name="ve" id="e" onmouseover="a.src='./images/star.gif'; b.src='./images/star.gif'; c.src='./images/star.gif'; d.src='./images/star.gif'; e.src='./images/star.gif';" onmouseout="a.src='./images/staroff.gif'; b.src='./images/staroff.gif'; c.src='./images/staroff.gif'; d.src='./images/staroff.gif'; e.src='./images/staroff.gif';" />
</form>
Or use a heredoc. Either way, the hordes of escaped apostrophes would be unnecessary.
You could also take advantage of the fact that JavaScript is a programming language and computers are there to spare you the tedious repetitive stuff.
<form action="<?php echo $_SERVER['PHP_SELF']?>?action=go" method="post" enctype="multipart/form-data">
<input type="image" src="./images/starOff.gif" name="va" id="a" />
<input type="image" src="./images/starOff.gif" name="vb" id="b" />
<input type="image" src="./images/starOff.gif" name="vc" id="c" />
<input type="image" src="./images/starOff.gif" name="vd" id="d" />
<input type="image" src="./images/starOff.gif" name="ve" id="e" />
</form>
<script type="text/javascript">
// More efficiencies possible with different IDs.
function turnOnStars(howmany)
{
var stars = [
document.getElementById('a'),
document.getElementById('b'),
document.getElementById('c'),
document.getElementById('d'),
document.getElementById('e')];
for(i=0; i<howmany; i++)
stars[i].src = './images/starOn.gif';
}
function turnOffStars(howmany)
{
var stars = [
document.getElementById('a'),
document.getElementById('b'),
document.getElementById('c'),
document.getElementById('d'),
document.getElementById('e')];
for(i=0; i<stars.length; i++)
stars[i].src = './images/starOff.gif';
}
// Rigmarole to deal with Microsoft doing things differently
var ListenEvent;
if(document.addEventListener)
{
ListenEvent = function(id, event, action) {
document.getElementById(id).addEventListener(event, action, false);
};
}
else
{
// Bloody Microsoft.
ListenEvent = function(id, event, action) {
document.getElementById(id).attachEvent('on'+event, action);
};
}
// Needs to happen after the <input> elements are created - so at the end of the document or as part of an onload event.
ListenEvent('a', 'mouseover', function(){turnOnStars(1);});
ListenEvent('b', 'mouseover', function(){turnOnStars(2);});
ListenEvent('c', 'mouseover', function(){turnOnStars(3);});
ListenEvent('d', 'mouseover', function(){turnOnStars(4);});
ListenEvent('e', 'mouseover', function(){turnOnStars(5);});
ListenEvent('a', 'mouseout', turnOffStars);
ListenEvent('b', 'mouseout', turnOffStars);
ListenEvent('c', 'mouseout', turnOffStars);
ListenEvent('d', 'mouseout', turnOffStars);
ListenEvent('e', 'mouseout', turnOffStars);
</script>