私は単純なフォームを作ろうとしていますよね?そうではありません。
私は現在、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>