0

Web サイトのサーバー (Web ルートの下) で php スクリプトを呼び出す必要があるページにフォームがあり、別の Web サイトのサーバーでホストされている外部 jsp スクリプトも呼び出す必要があります。に 2 つのアイテムを入れることができないことはわかっていますが、<form action="..."これを行う方法がわかりません。どちらのスクリプトも、フォームから送信された変数を受け取る必要があります。

編集:ここで間違いを犯しました。申し訳ありませんが、JavaScript だと思っていたら、実際には JSP でした。JavaScript について言及したすべての場所を修正するために投稿を修正しました。

4

2 に答える 2

0

「javascriptファイル」に投稿しないでください。javascript は html でホストする必要があります。したがって、html ファイルに js ファイルを含めて関数を呼び出す必要があるのか​​、実際に別のサーバー上の別の hmtl ファイルに投稿するつもりなのかはわかりません。

具体的に回答するには、2 つのフォームを作成し、それぞれを送信できます。

jquery を使用すると、フォームを動的に作成して送信できます。get ではなく、メソッドとして post を使用します。

$('<form>', {
    "id": "getInvoiceImage",
    "html": '<input type="text" id="componentInvoicId" name="componentInvoicId" value="' + componentInvoiceId + '" />',
    "action": window.siteRoot + 'ComponentInvoice/GetInvoiceImage/'
}).appendTo(document.body).submit();
于 2013-10-16T18:30:53.677 に答える
0

送信ボタンにイベント ハンドラーを追加し、送信onclickに実行する必要があるすべての JavaScript をそこに含めることができます。

それが役立つことを願っています。

アップデート:

質問を変更した後、同じクライアント/ Web ページから同時に 2 つのサーバー エンドポイントに投稿したいことがわかりました。

この場合、次のことをお勧めします。

  1. を使用していない<form>
  2. 含むjQuery

次のように:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
    $('#btnSubmit').click(function(){

        // set urls
        var url1 = 'http://php.url.com',
            url2 = 'http://jsp.url.com';

        // prepare data
        var data = {
            'field1' : 'val1',
            'field2' : 2
        }

        // prepare callback (one callback for both requests)
        var callback = function(data) {
            console.log('request ended with data: ' + data);
        }

        // send post requests to both servers with the same data payload
        $.post(url1, data, callback);
        $.post(url2, data, callback);
    });
});
</script>

<input type="button" id="btnSubmit" value="Submit" />

このアプローチでは、ボタンをクリックすると、設定した各サーバー エンドポイントに 1 つずつ、2 つの非同期投稿リクエストが送信されます。

それが役立つことを願っています。

于 2013-10-16T18:29:16.190 に答える