これはおそらく以前に回答されており、再投稿して申し訳ありませんが、どこから修正を開始すればよいかわからないため、何を試して解決策を探すべきかわかりません. 我慢してください。
チュートリアルを使用して、必要な場所にフィールドを動的に追加した CMS のフォームがあります。例: フォームは箇条書きのフィールド エントリが 0 で読み込まれますが、いくつか必要な場合は、[箇条書きを追加] というボタンをクリックすると、エントリ フィールドが表示されます。配列になっています。DBに問題なく送信します。フィールドが表示されていない場合、削除ボタンは無効になっています。すべて正常に動作します。フィールドなしで開始する場合は、新しいフォームで。問題は、このフォームの編集バージョンにあります。
これが私のコードです:
<div id="bullets">
<?php
$sql_bullet_display = 'SELECT * FROM exampleDB.prod_feature_bullets WHERE product_name ="'.$row_product_details['product_name'].'";';
$res_bullet_display = mysql_query($sql_bullet_display) or die(mysql_error().'<br />bad query<br />'. $sql_bullet_display);
$newNum = 1;
while($row_bullet_display = mysql_fetch_assoc($res_bullet_display)){
?>
<div id="bullet<?php echo $newNum; ?>" class="clonedInput2">
<input type="hidden" id="bullet_order<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_order]" value="<?php echo $newNum; ?>" />
<input type="text" id="bullet_text<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_text]" value='<?php echo $row_bullet_display['bullet_text']; ?>' />
<input type="text" id="bullet_subtext<?php echo $newNum; ?>" name="bullet[<?php echo $newNum; ?>][bullet_subtext]" value='<?php echo $row_bullet_display['sub_text']; ?>' />
</div>
<?php
$newNum++;
}
?>
</div>
<div>
<input type="button" id="btnAdd" value="Add Bullet" />
<input type="button" id="btnDel" value="Remove Bullet" />
</div>
これはそれに付随する Javascript です。
<script type="text/javascript">
$(document).ready(function() {
$('#btnAdd').click(function() {
var num = $('.clonedInput2').length; // how many "duplicatable" input fields we currently have
var newNum = new Number(num + 1); // the numeric ID of the new input field being added
$('<div id="bullet' + newNum + '" class="clonedInput2"><input type="hidden" id="bullet_order' + newNum + '" name="bullet[' + newNum + '][bullet_order]" value="' + newNum + '" /><input type="text" id="bullet_text' + newNum + '" name="bullet[' + newNum + '][bullet_text]" /><input type="text" id="bullet_subtext' + newNum + '" name="bullet[' + newNum + '][bullet_subtext]" /></div>').appendTo('#bullets');
// enable the "remove" button
$('#btnDel').attr('disabled','');
// business rule: you can only add 15 bullets
if (newNum == 15)
$('#btnAdd').attr('disabled','disabled');
});
$('#btnDel').click(function() {
var num = $('.clonedInput2').length; // how many "duplicatable" input fields we currently have
$('#bullet' + num).remove(); // remove the last element
// enable the "add" button
$('#btnAdd').attr('disabled','');
// if no element remains, disable the "remove" button
if (num == 0)
$('#btnDel').attr('disabled','disabled');
});
$('#btnDel').attr('disabled','disabled');
});
これは過去に私にとって非常にうまく機能しましたが、私が言ったように、0 の箇条書き入力フィールドから始まる新しいフォームでのみ機能します。私の問題は、編集フォームの作成にあります。編集を押したときに表示される DB には、既に 2 つの箇条書きがあります。追加ボタンが有効になっています。フォームが最初に表示されるとき、削除ボタンは常に無効になっています。2 つのエントリが表示され、すべてが正しく入力されていても。
ただし、追加ボタンをクリックすると、3 番目の入力フィールドが表示され、削除ボタンが有効になります。とてもイライラします。編集についてどうすればよいかわからないので、次のように表示されます。ページの読み込み時に、DB が既に 2 つの箇条書きを埋めていることを認識しているため、最初から削除ボタンがアクティブになっているはずです。これまでに試したすべての変更は、ボタンを壊すだけです。
助けてくれてありがとう!