2010-12-02 11 views
0

私は古典的なASPでウェブページを構築しています。これはフォームにラップされた10個のリンクを持ち、ロールオーバーと色付けされたブロックの外観を与えるためにCSSによって制御されます。ブロック/リンクをクリックすると、ユーザーにZipファイルをダウンロードする必要があります。同時に、この情報を使用してデータベースを更新できるように、自分自身にフォームを送信してください。このページは、次にユーザがダウンロードできるようになります。リンクのあるフォーム提出

私は新しいウィンドウにzipファイルをダウンロードできますが、フォームは矛盾して送信されます、おそらく助言することができます。私は2週間ウェブを検索し、答えを見つけられませんでした。

各リンクはdocument.getElementById("form1").submit()を使用すると、このフォームは、常に文書の最初であろうと仮定よりも若干より堅牢になり

<table cellspacing="0" cellpadding="0" width="250" border="0"> 
    <form action="<%=request("script_name")%>" method="post" id="form1" name="form1"> 
      <tr style="height:18px;" bgcolor="#e8e8e8"> 
       <td bgcolor="#e6e6e6" align="center"> 
        <a href="http://.....URL of Zip file" onClick="javascript:document.forms(0).submit();" class="dload">DOWNLOAD</a> 
        <input type="Hidden" name="trak" value="1"> 
       </td> 
      </tr> 
    </form> 
</table> 
+1

Eeek。 HTMLが無効です。プレゼンテーションHTML。 'document.forms'を関数として使用しようとしています。私は、基本に戻ることを強くお勧めします、ここには多くの間違いがあります。 http://wsc.opera.com/ – Quentin

答えて

0

以下のように構成されています。ブラウザとの互換性もやや高いと思います。

0

はこれを試してみてください:

<a href="http://.....URL of Zip file" 
    onClick="javascript:window.open(this.href); document.forms[0].submit();return false;" class="dload">DOWNLOAD</a> 
0

は、フォームのことを忘れます。あなたはロギングを行っていますが、それはサーバー上で重要な変更ではありません。 POSTの代わりにGET期待するASPを切り替えそしてちょうど行います

<a href="<%=request("script_name")%>?trak=1">...</a> 

とロギングスクリプトが(どちらかのデータを読み取り、それを直接返すか、302リダイレクトで応答することによって)zipファイルを返しています。

ブラウザが1つのリンクに対して2つのHTTP要求を行うようにはしないでください。そのようにすれば、厄介な混乱につながります。