入力に 2 つの値があります。enc_rows
とenc_slots
<input type=text size=2 name=enc_rows id=enc_rows value='".$enc_data["enc_rows"]."'>
<input type=text size=2 name=enc_slots id=enc_slots value='".$enc_data["enc_slots"]."'>
2 つのフィールドに指定された数に応じて、行数とスロット数を動的に「描画」する必要があります。
echo "
<table id='enc_square'>
<tbody id='tbody_data'>
";
for ($y=0; $y < $t_row["enc_rows"]; $y++)
{
echo "<tr class='enc_tr' id='".$y."'>";
for ($x=0; $x < $t_row["enc_slots"]; $x++)
echo "<td class='enc_td' id='".$x."'></td>";
echo "</tr>";
}
echo "
</tbody>
</table>
";
簡単なcssとjqueryで試してみました:
<style>
.enc_tr{
height:100px;
width: 100px;
}
.enc_td{
height:100px;
width: 100px;
color:#000;
border:1px #000 solid !important;
}
#enc_square{
position:static;
background-color:#aaa;
color:#000;
border:1px #000 !important;'
}
</style>
<script type=text/javascript language='javascript'>
$(document).ready(function() {
$('#enc_rows').bind('change', function() {
$('#tbody_data').empty();
var height = $(this).val();
$('#enc_square').css('height', 100 * height);
for(x=0;x < height;x++)
$('#tbody_data').last().after('<tr class=\'enc_tr\' id=' + x +'></tr>');
});
$('#enc_slots').bind('change', function() {
var width = $(this).val();
var slotCount = $('#enc_square td').length / $('#enc_rows').val();
$('#enc_square').css('width', 100 * width);
$('#enc_square > td:last').appendTo('<td class=\'enc_td\' id=' + (slotCount+1) +'></td>');
});
});
</script>
enc_rows を 1 または 3 に設定すると、tbody が完全に削除されます。(そして正方形を削除します)