0

私は単純なフォームを作ろうとしていますよね?そうではありません。

私は現在、2 つの選択ボックスを使用してフォームをセットアップしています。onchange 関数を使用して変更された最初の選択は、2 番目の選択ボックスを生成する php ページを実行します。

次に、2 つの選択ボックスの別の「インスタンス」を追加する別の関数を用意して、一度に 1 つずつ入力しなくても一度に複数の行をテーブルに追加できるようにします。

さらに「インスタンス」を追加すると問題が発生します。onchange 関数は、2 番目の選択ボックスの元のインスタンスと新しい「インスタンス」の両方を同じものとして認識します。

私が見ることができるように、私の最善の策は、関数と、私が立ち往生している2番目の選択ボックスを含むdivに動的に名前を付けることです。私の質問は、「showDim」関数と「dimdiv」div id を変更して一致させるにはどうすればよいですか?

Dim 選択ボックスを呼び出す js 関数。

<script>
    function showDim(str)
    {
    if (str=="")
      {
      document.getElementById("dimdiv").innerHTML="";
      return;
      } 
    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("dimdiv").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","get_dim.php?id="+str,true);
    xmlhttp.send();
    }
</script>

最初の選択ボックスの html/php と 2 番目の選択ボックスを含む div。(他の関数は、必要な回数だけこの部分を複製します)

<label>Style:</label>
    <select name='Style' id='Style' onchange="showDim(this.value)">
        <option value='0' class='red'>Select a style...</option>            
        <?php
            include ('connect.php');

            $getsty = $db->prepare("SELECT Style_ID, Style_Type FROM style ORDER BY Style_Type ASC LIMIT 1, 18446744073709551615;"); 
            $getsty->execute();
                while($row = $getsty->fetch(PDO::FETCH_ASSOC)) {    
                    $Style_ID = $row['Style_ID'];
                    $Style_Type = $row['Style_Type'];                   
                    echo "      <option value='$Style_ID'>$Style_Type</option>";
                }                                       
        ?>                          
<br>
<div id='txtHint2'>                 
    <label>Dimensions:</label>
        <select name='Dim'>
            <option value='0' class='red'>Select the dimensions...</option> 
        </select>           
</div>
4

1 に答える 1