1

私はこのコードを持っています:

これはaddOptions関数です

<script>
var values = <?php
$sql="SELECT * FROM billing_sagenominalcodes order by code ASC";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$nominalcodes = array();
while($result=mysql_fetch_assoc($rs))
{
    $nominalcodes[] = $result['code'];
}
echo json_encode($nominalcodes);
?>;
var names = <?php
$sql="SELECT * FROM billing_sagenominalcodes order by code ASC";
$rs=mysql_query($sql,$conn) or die(mysql_error());
$nominalcodesname = array();
while($result=mysql_fetch_assoc($rs))
{
    $nominalcodesname[] = $result['code'] . ' - ' . $result['name'];
}
echo json_encode($nominalcodesname);
?>;
function addOptions(select, values)
{
    for (var i=0, iLen=values.length; i<iLen; i++)
    {
        select.appendChild(new Option(names[i],values[i]));
     }
}
</script>

次に、行追加機能

<script language="javascript" type="text/javascript">
var i=1;
function addRow()
{
          var tbl = document.getElementById('table1');
          var lastRow = tbl.rows.length;
          var iteration = lastRow - 1;
          var row = tbl.insertRow(lastRow);

          var sagenominalcodeCell = row.insertCell(3);
          var elSageNominalCode = document.createElement('select');
          elSageNominalCode.type = 'select';
          elSageNominalCode.name = 'sagenominalcode' + i;
          elSageNominalCode.id = 'sagenominalcode' + i;
          sagenominalcodeCell.appendChild(elSageNominalCode);
 i++;
 }
 </script>

そしてHTML

<select name="sagenominalcode" id="sagenominalcode">
        <script>addOptions(document.getElementById('sagenominalcode'), values);</script>
        </select>
            <input type="button" value="Add" onclick="addRow();" />

新しい行を追加しても問題ありませんが、選択メニューに addOptions 関数を設定していません。

新しい行/選択メニューが動的に作成され、addRow 関数が呼び出されたときに作成された他のすべてのメニューに対して同じ関数を実行する方法はありますか?

4

1 に答える 1