行を動的に生成するテーブルがあります。「select」リストを取得するために、「select」タグ内で関数を呼び出しています。
<table cellspacing="2" cellpadding="3" border="0" width="100%" style="padding-top: 5px;" class="form_style_table" id="add_resource_table">
<tr>
<td><input type="text" name="requested_on" value="<?php echo $requested_on; ?>" class="date"/> :Requested On</td>
<td colspan="5" align="right" class="border_bottom_1">
<span class="float_left" id="status_msg"></span>
<input type="button" value="Add Resource" id="add_resource_button" class="orange"/>
</td>
</tr>
<th align="middle" valign="middle">Resource Allocated</th>
<th align="middle" valign="middle">Role</th>
<th align="middle" valign="middle">Tentatively Starts On</th>
<tr>
<td>
<select name="add_resource">
<option value="">-- Select --</option>
<?php echo select_data_as_options("project_resources", "name", $resource_allocated); ?>
</select>
</td>
<td>
<select name="add_role">
<option value="">-- Select --</option>
<?php echo select_data_as_options("project_roles", "name", $role); ?>
</select>
</td>
<td><input type="text" name="start_date_tentative" class="date_one" value="<?php echo $tentatively_starts_on; ?>"/></td>
</tr>
</table>
「select」タグの機能は次のとおりです。
function select_data_as_options($table_name, $field_name, $selected){
$select=mysql_query("SELECT id, $field_name FROM $table_name");
$options = '';
while($row=mysql_fetch_assoc($select)){
$selected_attr = '';
extract($row);
if(strtolower($selected) == strtolower($row[$field_name]) or $selected == $id)
$selected_attr = "selected='selected'";
$options.="<option value='$id' $selected_attr>" . ucfirst($row[$field_name]) ."</option>";
}
return $options;}
以下のコードを使用して行を追加しています。
$("#add_resource_button").click(function () {
var $row = $('<tr><td><select name="add_resource" class="resource"><option value="">-- Select --</option><?php echo select_data_as_options("project_resources", "name", $resource_allocated); ?></select></td><td><select name="add_role" class="role"><option value="">-- Select --</option><?php echo select_data_as_options("project_roles", "name", $role); ?></select></td><td><input type="text" name="start_date_tentative" class="date_one" value="<?php echo $tentatively_starts_on; ?>"/></td></tr>').appendTo('#add_resource_table');
$row.find('.date_one').datepicker();
ここでは、追加後の行は関数を呼び出していないため、選択オプションは表示されません。同様に、append で使用される変数はそのまま表示されます。
これに対する解決策を提案してください。前もって感謝します。