私は次のフォームを持っています。その目的は、どの状態が選択されているかを確認し、その値をスクリプトに渡すことです。スクリプトは、データベースに保存するための自動インクリメント ID を持つドロップダウン ボックスを動的に追加します。スクリプト エラーはありませんが、動的フィールドが表示されません。ちなみに、これはロブの作品http://www.web-design-talk.co.uk/58/adding-unlimited-form-fields-with-jquery-mysql/#comment-70752に基づいています。私がやっていることの欠点を誰でも見ることができますか。
<html>
<head>
<title>Form</title>
<script type="text/javascript" src="../lib/jquery/jquery-1.8.1.min.js"></script>
</head>
<body>
<form id="Form" name="Form" method="post" action="Form.php">
<fieldset>
<legend>Form</legend>
<label>Operations State: </label>
<select name="StateID" id="StateID">
<option value="">Select a State</option>
<option value="CA">CA</option>
<option value="NY">NY</option>
<option value="PA">PA</option>
</select>
<br>
<div id="container">
<p id="add_field">
<label><a href="#" onclick="getClass(StateID.value)">Add A Class Code</a></label>Please select a Class Code
</p>
</div>
</fieldset>
</form>
<script>
var i = 0;
function getClass(str){
var StateID = $("#StateID").val();
$('p#add_field').on('click', function(){
i += 1;
$('#container').before
if (StateID == "CA"){
('<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="1">1</option><option value="2">2</option><option value="3">3</option>' + '</select><br>')
}
else if (StateID == "NY"){
('<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="4">4</option><option value="5">5</option><option value="6">6</option>' + '</select><br>')
}
else if (StateID == "PA"){
('<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="7">7</option><option value="8">8</option><option value="9">9</option>' + '</select><br>')
}
else{
}
});
}
</script>
</body>
</html>
前もって感謝します!
いくつかの編集の後、私は次のことを思いつきました...
<script>
var i = 0;
function getClass(){
var StateID = $("#StateID").val();
$('p#add_field').on('click', function(){
i += 1;
if (StateID == "CA"){
$('#container').before(
'<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="1">1</option><option value="2">2</option><option value="3">3</option>' + '</select><br>')
}
else if (StateID == "NY"){
$('#container').before(
'<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="4">4</option><option value="5">5</option><option value="6">6</option>' + '</select><br>')
}
else if (StateID == "PA"){
$('#container').before(
'<label>Select a Class Code</label>' + '<select name="ClassCode[]" id="ClassCode_' + i + '">' + '<option value="7">7</option><option value="8">8</option><option value="9">9</option>' + '</select><br>')
}
else{
}
})
}
</script>
このバージョンでは StateID が表示され、新しい追加ごとにドロップダウン ボックスが変更されます。唯一の問題は、ID の自動インクリメント (ClassCode_1、ClassCode_2 など) とともに、ページに出力されるフィールド数もインクリメントすることです。それが分かればすごいことになる!