2012-03-10 6 views
1

私は、URLを通過するものは何でもGETデータ表示するポップアップウィンドウを開く私のページにいくつかの定期的なアンカータグのリンクを持っている:フォームを使用せずにリンクをクリックしたときにPOSTデータを送信しますか?

<a href="javascript:window.open('view.php?data=a%20bunch%20of%20data');">View</a> 

このデータの一部は本当に長いです、そして私の安っぽいWebホストを持っていますURLに渡すことができるGETデータのサイズにはごくわずかな制限があります。 htmlフォームを使用せずにPOSTデータでこれを行う方法はありますか?

+0

私は新しいウェブホストを見つける時だと思います。あなたもこれを支払う*? – Blender

+0

合意して、彼らはひどいです。残念ながら、私のお金を取り戻すには遅すぎます。しかし、それを避けることができれば、inMotionを使わないでください。 – Joey

+0

それはかなりばかげている。そのウェブホストを使用してファイルを適切にアップロードできますか? – Blender

答えて

7

フォームを使用する必要があります。

<form method="post" action="somepage.php" id="form1"> 
<input type="hidden" name="field1" value="foo" /> 
<input type="hidden" name="field2" value="bar" /> 
<a href="somepage.php?field1=foo&field2=bar" onclick="document.getElementById('form1').submit(); return false;">Hyperlink</a> 
</form> 
2

を使用することができます。ただし、フォームで巣あなたのハイパーリンクをできました:

<a href="#" id="post-link">Example</a> 

<script type="text/javascript"> 
    $(document).ready(function() { 
      $('a#post-link').click(function() { 
       $('body').append($('<form/>', { 
        id: 'form', 
        method: 'POST', 
        action: '#' 
       })); 

       $('#form').append($('<input/>', { 
        type: 'hidden', 
        name: 'field1', 
        value: 'foo' 
       })); 

       $('#form').append($('<input/>', { 
        type: 'hidden', 
        name: 'field2', 
        value: 'bar' 
       })); 

       $('#form').submit(); 

       return false; 
      }); 
    }); 
</script> 
+0

私はこのようなソリューションを使用することはできません理由は、すべての私のリンクはすでに既存のフォーム内にあり、1)リンクをクリックしたときにそのフォームを送信したくない、2)私が追加する隠しフィールドは、そのフォームに追加したくないフォームに属します。それ以外の場合は、素晴らしい解決策です。 – Joey

+0

一時的なフォームを作成して送信することは良い解決策です – jscripter

1

ことの一つは、私はWeb開発と私の長年の経験の間に学んだ:あなたのホスティング、ホストからの制限に実行する場合、あなたrサイトのどこかにあります。彼らが何であれ、ホスティングの制限を回避しようとすると、あなたは長期的にあなたを遠くに逃がさないでしょう。ホスティングは安く、今日は非常に合理的な価格のための寛大なリソースとVPSを得ることができます。

それは価値がありません。

関連する問題