私はdjango Webアプリに取り組んでおり、フォームが送信されたときに2つのことを行う必要があるhtmlフォームがあります:アプリのデータベースにレコードを作成し、収集された値の一部を別のWebサイト(支払いサイトなど)に投稿します)。
私が抱えている問題は、2つのことを同時に行うフォームを取得することです。HTML フォームは 1 つのアクションしか持てないことを知っています。ここで、javascript を使用してフォームに 2 つ以上のアクションを実行させる方法に関するいくつかの投稿を StackOverflow で読みましたが、これまでに試したことはすべて、この状況ではうまくいきませんでした。 . それらはすべて、動作するアクションが 1 つだけのようです。
これは私のdjangoテンプレートが今どのように見えるかです:
{% extends "some other template" %}
{% block content %}
<div>
...
<form id=form1" name="trans_form" method="POST" >
...
<!--DATA TO POST TO PAYMENT SITE-->
<input type="hidden" name="transaction_id" value="some value" />
<input type="hidden" name="transaction_amount" value="some value"/>
<input type="hidden" name="customer_id" value="some value" />
<input type="hidden" name="customer_name" value="some value" />
<!--DATA TO POST TO PAYMENT SITE-->
...
<!--DATA TO POST TO APP DATABASE-->
<input type="hidden" name="user" value="{{ user.id }}">
<input type="hidden" name="type" value="CC">
<input type="hidden" name="ref_no" value="{{ ref_no }}">
Amount: <input type="text" name="amount" id="id_amount" required />
Ref ##: <span>{{ ref_no }}</span>
Date: <span>{{ cur_date|date:'d/m/Y' }}</span>
<a href="#" id="pay-btn" class="button" onclick="submitForm();">Submit</a>
<!--DATA TO POST TO APP DATABASE-->
...
</form>
...
</div>
{% endblock %}
{% block script %}
<script>
function submitForm()
{
createRecord(document.forms["trans_form"]);
sendToPay(document.forms["trans_form"]);
}
function sendToPay(f)
{
f.action= "www.paymentsite.com";
f.target = null;
f.onsubmit = null;
f.submit();
}
function createRecord(f)
{
f.action = "url to view that creates the record in database";
f.target = "_blank";
f.onsubmit = null;
f.submit();
}
</script>
{% endblock %}
どう思いますか?私は不可能を達成しようとしていますか?そうでない場合は、正しい方向に向けてください。ありがとう。