jQuery getとpostメソッドの値伝達に関する注意事項
2461 ワード
いくつかの実験をしたばかりで、次のコードを見てみると分かります.
以下の内容は返信が必要です.
jquery_data.php
jquery_test.html
実験1:
以下の内容は返信が必要です.
jquery_data.php
echo "post: ";
print_r($_POST);
echo "get: ";
print_r($_GET);
?>
jquery_test.html
実験1:
$(function()
{
// post ,
$.post('jquery_data.php?v1=1', {v2: 2}, function(data)
{
$('').append(data).appendTo('body');
});
});
/*
結果を返します.
post: Array
(
[v2] => 2
)
get: Array
(
[v1] => 1
)
*/
実験2:
$(function()
{
//postメソッド、データはアドレスの後ろにあり、2番目のパラメータはコールバック関数です
$.post('jquery_data.php?v1=1', function(data)
{
$('').append(data).appendTo('body');
});
});
/*
結果を返します.getにデータが表示されます.
post: Array
(
)
get: Array
(
[v1] => 1
)
*/
実験3:
$(function()
{
//getメソッド、dataパラメータで値を渡す
$.get('jquery_data.php', {v2: 2}, function(data)
{
$('').append(data).appendTo('body');
});
});
/*
結果を返します.getにデータが表示されます.
post: Array
(
)
get: Array
(
[v2] => 2
)
*/
実験4:
$(function()
{
//getメソッド、両方ともデータあり
$.get('jquery_data.php?v1=1', {v2: 2}, function(data)
{
$('').append(data).appendTo('body');
});
});
/*
結果を返すと、両方のデータが結合され、getに含まれます.
post: Array
(
)
get: Array
(
[v1] => 1
[v2] => 2
)
*/
実験5:
$(function()
{
//getメソッド、両方にデータがあり、変数名が同じ
$.get('jquery_data.php?v2=1', {v2: 2}, function(data)
{
$('').append(data).appendTo('body');
});
});
/*
結果を返すと、getにデータがあり、dataパラメータのデータがアドレスの後ろのデータを上書きします.
post: Array
(
)
get: Array
(
[v2] => 2
)
*/
これらの簡単な小さな例から、アドレスの後ろのデータはgetメソッドでもpostメソッドでもget形式で伝達されることが明らかになった.dataパラメータのデータはメソッドに基づいて伝達方式を決定する.
したがって,混同を避けるためには,できるだけアドレスの後ろにデータを書かずにdataパラメータに統一することを推奨する.
もちろん、postメソッドを使用するときにget伝値を同時に利用したい場合は、get方式で伝達するデータをアドレスの後ろに書き、post方式で伝達するデータをdataパラメータに書くことができます.
とにかく方法は死んで、人は生きていて、どのように使うかは実際の状況を見なければなりません.実践は真理を検証する唯一の基準である.実験をしないで、知識を身につけるのがもっと丈夫です.