フォームを使用せずにPOSTメソッドを使用して、あるページから別のページにデータを渡す方法はありますか?.
Getと同様に、?
送信するものは何でも。投稿のために何かできますか?.
また、セッションを使用するといわれる別のスレッドも読んだ。ただし、セッションはCookieとしてユーザーのコンピューターに保存され、Cookieは安全ではありません。
それを行う他の方法はありますか?最初のページで何かを記述してから、それを2番目のページに渡します。
また、POSTメソッドがどのように機能するのか、そしてどのようにデータを渡すのかについて、誰かが私に説明できたら良いと思います。
これにはjQueryを使用する必要があります。そのajax()
関数を使用できます。以下のリンクにアクセスして、機能の一覧とともにその完全な説明を読んでください。
これはあなたのためのサンプルコードです:
<hmtl>
<head>
<script type="http://code.jquery.com/jquery-1.5.1.min.js"></script>
</head>
<body>
<div class="my-fake-form">
<input id="posting-value-1" type="text" />
<a id="submit-form-link" href="#submit">Submit this Div!</a>
</div>
</body>
</html>
Ajaxコード:
function fake_form_submit ()
{
var post = $('input#posting-value-1').val();
$.ajax({
'url': 'your-php-file.php',
'type': 'POST',
'dataType': 'json',
'data': {post: post},
'success': function(data)
{
if(data.finish)
{
$("div.my-fake-form").attr("innerHTML","Form Submited!");
}
else
{
$("div.my-fake-form").attr("innerHTML","Form Not Submited!");
}
},
beforeSend: function()
{
$(document).ready(function () {
$("div.my-fake-form").attr("innerHTML","Loading....");
});
},
'error': function(data)
{
$(document).ready(function () {
$("div.my-fake-form").attr("innerHTML","ERROR OCCURRED!");
});
}
});
}
$(document).ready(function () {
$('a#submit-form-link').click(function (e) {
e.preventDefault();
fake_form_submit();
});
});
PHP:
<?php
$post = $_POST['post'];
//Do Something with the value!
//On Succes return json encode array!
echo json_encode(array("finish" => true));
?>
セッションを使用するだけです。
Cookieへのセッションの保存は、セッションのIDに制限された上記の回答で示されています。セキュリティを重視する場合は、CookieをHTTP Cookieとしてのみ送信するように構成することもできます。
リクエストするページで、必要なセッションのKey-Valueペアを設定します。要求されたページで、以前に設定したセッションキーを要求します(最初に存在するかどうかを確認します)。 php.iniでは、セッションCookieをHTTPのみとして使用することを選択できるため、セキュリティが強化されます。
さらに:AJAXまたは上記のcURLを使用するのと同じくらい簡単にデータを投稿できます。
ajaxリクエストを使用してPOSTリクエストをサーバーに送信するか、サーバー側のcURLを使用できます。
ブラウザからPOSTしてリンクのように見せたい場合は、javascriptが必要です。
submit()関数を使用できます。たとえば http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml を参照してください。
しかし、GETのように動作させたい場合は、GETを使用しないでください。
POSTページからの送信リクエストの場合、 JQuery.post を使用して実行できます(この場合、ライブラリを使用)または cURL (php)
1つの方法は、JavaScriptを使用して非表示のフォームを送信することです。 HTML:
<button id="my-button">Go to other page</button>
<form id="my-form" method="POST" action="/other-page" style="display: none">
<input type="hidden" name="param1" value="value1">
<input type="hidden" name="param2" value="value2">
</form>
JavaScript(jQuery):
$("#my-button").click(function(e) {
$("#my-form").submit();
});
リンク(<a>
タグ)の代わりにボタンなど.
これにより、ブラウザが別のページに移動します。現在のページに留まり、一部のデータをバックグラウンドで投稿する場合は、jQueryまたは同様のライブラリでajax関数を使用します。