残念ながら、アプリの写真を投稿する前に、この回答を書き始めました。アイデアはまだ関連性がありますが、私の例をあなたがしていることに合わせて調整したでしょう. 申し訳ありません。
jQuery と AJAX を使用して作業を完了します。jQuery は、DOM への新しい要素の挿入を処理し、フィールドの検証を行います。AJAX を使用して、アカウント コードが RC 間で重複していないことを確認します。<form action= method=>
個人的には、プロセスをより細かく制御でき、準備が整う前にユーザーを別のページに移動させないため、従来の方法を使用する代わりに AJAX を使用してフォーム送信を処理することもできます。ただし、<form>
例を説明するのが最も簡単です。最初にそれを構築してから、必要に応じて AJAX を使用するように変更できます。
ここからの例は白紙の状態を想定しています (つまり、これを書く前にあなたのサンプル アプリを見たことがありませんでした):
まず、jQuery/javascript で、追加された各 RC を追跡するためのカウンターが必要です。これは<head>
、HTML/PHP のタグに含めることも、別のファイルに保存することもできます。私の名前をクリックして、私が提供した他の AJAX の回答を見ると、多くの有用な例が表示されます。
<script type="text/javascript">
$(document).ready(function() {
var ctr = 0;
});
</script>
HTML では、各 RC DIV を追加する DIV が必要です。また、ユーザーが新しい RC の作成を開始するためのリンク/ボタンなどが必要です。これは簡単なフォームで、[RC タイトル] と [アカウント コード] だけでも、別の [アカウント コード] フィールドと [完了/送信] ボタンを作成するためのリンク/ボタン/その他のものがあります。
HTML:
<div id="container">
<form action="yourprocessorfile.php" method="POST" id="myform"></form>
</div>
<input type="button" id="mybutt" value="Add New RC" />
JAVASCRIPT/jQuery (再び、上記の (document).ready() セクション内):
$('#mybutt').click(function() {
ctr++;
var str = 'RC TITLE:<br><input id="RC-"'+ctr+' class="RC" type="text"><br>ACCOUNT CODE<br><input id="AC-"'+ctr+' class="AC" type="text"><br>';
$('#myform').append(str);
});
ユーザーが [完了] を押したら、再度 jQuery を使用して、各 [アカウント コード] フィールドが入力されていることを確認します。
$('#done').click(function() {
$('.RC').each(function() {
if ($(this).val() == '') {
alert('Please complete all fields');
$(this).focus();
return false;
}
});
$('.AC').each(function() {
if ($(this).val() == '') {
alert('Please complete all fields');
$(this).focus();
return false;
}
});
$('#myform').submit();
});
編集 2 / 質問 1:
次の方法で、RC にリンクされた新しいアカウント コードを追加できます。
上記の例では:
==> クラスを使用したため、そのクラスを持つ任意の要素がクリックされるたびに発火します。もちろん、ボタンを作成するときは、次のようにそのクラスをボタン定義に追加する必要があります。
<input type="button" class="add_AC" value="Add Account Code" />
num ==> は連鎖した jQuery メソッドを使用して、RC の ID の数値部分を次々と取得します。
$(this) ==> [アカウント コードの追加] ボタン/リンク/クリックされたものは何でも。
.parent() ==> これは、状況に応じて正しい場合と正しくない場合があります。これは、DOM をトラバースして RC 要素の ID コードを見つける部分で、次のようになりますRC-3
。次のことを試す必要があります。
.parent().parent() .sibling() .parent().sibling() .closest() .prev() または .next()
Dev Tools ウィンドウを開いた状態で、これらのセレクターを試してみてください。RC 要素を見つけるのに数分しかかかりません。または、別の質問をして HTML を投稿してください。
.attr('id') ==> 明らかに、ID のテキストを返します。RC-3
.split('-')[1] ==>RC
片側 (ゼロ) と反対側 ( 3
1)で配列を作成します
うまくいけば、これでどこから始めればよいかがわかります...