0

行を動的に生成するテーブルがあります。「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 で使用される変数はそのまま表示されます。

これに対する解決策を提案してください。前もって感謝します。

4

0 に答える 0