First thing I always recommend when building JS is to get the JS working on a static HTML page before you try to mix it with PHP. On that note, here is what I would have expected to see, but maybe I'm still misunderstanding what you're looking for.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Table cell click</title>
<link type="text/css" href="scripts/css/overcast/jquery-ui-1.8.17.custom.css" rel="stylesheet" />
<script type="text/javascript" src="scripts/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="scripts/js/jquery-ui-1.8.17.custom.min.js"></script>
<script type="text/javascript">
$(function() {
$('#detailsContainer > div').each(function(k,v) {
var divID = '#'+$(v).attr('id');
var formID = '#form-'+$(v).attr('id').split('-')[1];
$(divID).hide();
$(divID).dialog({
autoOpen: false,
width: 300,
height: 250,
buttons:{
"Submit": function() {
$(formID).submit();
},
"Cancel": function() {
$(this).dialog('close');
}
}
});
$(formID).submit(function() {
// validation and form submission here
$.ajax({
type:'POST',
url:'http://example.com/processChanges.php',
data: $(formID).serialize(),
success: function(data) {
alert('Changes processed, server returned '+data);
}
});
});
});
});
function showDetails(cell) {
$('#detail-'+$(cell).attr('id').split('-')[1]).dialog('open');
}
</script>
</head>
<body>
<table>
<tr>
<td onclick="showDetails(this)" id="cell-1">Something</td>
<td onclick="showDetails(this)" id="cell-2">Something Else</td>
</tr>
</table>
<div id="detailsContainer">
<div id="detail-1">
<form id="form-1">
<input type="hidden" name="rowID" value="1">
<input type="hidden" name="colID" value="1">
<textarea name="details">Some massive long description. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur gravida, eros sed convallis cursus, purus quam vestibulum massa, vitae porttitor mauris lectus vitae metus. Cras a diam dolor. Nulla facilisi. Nullam sed sapien eu nulla aliquam euismod. Praesent velit ante, pulvinar vitae dapibus eget, pharetra at ligula. Suspendisse vestibulum eleifend leo id eleifend. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at enim felis. Nulla leo lorem, bibendum ut blandit eget, tincidunt vehicula nibh. Suspendisse convallis quam a lacus dapibus vel vulputate tellus elementum. Pellentesque id nibh diam.</textarea>
</form>
</div>
<div id="detail-2">
<form id="form-1">
<input type="hidden" name="rowID" value="1">
<input type="hidden" name="colID" value="1">
<textarea name="details">Some massive long description. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur gravida, eros sed convallis cursus, purus quam vestibulum massa, vitae porttitor mauris lectus vitae metus. Cras a diam dolor. Nulla facilisi. Nullam sed sapien eu nulla aliquam euismod. Praesent velit ante, pulvinar vitae dapibus eget, pharetra at ligula. Suspendisse vestibulum eleifend leo id eleifend. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at enim felis. Nulla leo lorem, bibendum ut blandit eget, tincidunt vehicula nibh. Suspendisse convallis quam a lacus dapibus vel vulputate tellus elementum. Pellentesque id nibh diam.</textarea>
</form>
</div>
</div>
</body>
</html>
I'm not entirely sure what you got going on in yours as its totally not the way I've seen this type of thing done. One thing I recommend is not use $ in variable names, since that's the jQuery shortcut, its makes it easier to see where you use jQuery and where you use a variable (in my mind anyway).