次のようなフォームがあるとします (jquery の本から引用):
<body>
<form>
<label>Enter your Name</label>
<input type="text" name="uname" class="uname"/> <br/>
<input type="submit" id="submit"/>
</form>
<div id="message"></div>
</body>
そして、次のような ajax 関数:
$(document).ready(function() {
$('#submit').click(function () {
var name = $('.uname').val();
var data = 'uname=' + name;
$.ajax({
type:"POST",
url:"welcome.php",
data: data,
success: function (html) {
$('#message').html(html);
}
});
return false;
});
});
スクリプト ファイルは次のようになります。
<?php
$name = $_POST['uname'];
echo "Welcome ". $name;
?>
それはうまくいきますが、ここで私が理解できないことがあります。welcome.php スクリプトが POST 配列から $name の値を取得する場合、ajax リクエストによってデータを送信する必要があるのはなぜですか? POST配列にはすでにその情報が含まれていますか?
また、私の理解では、ajax リクエストはキーと値のペアの形式ですが、データは uname=name の形式で送信されますが、通常、キーと値のペアには等号がありません。
ここで何が起こっているのか - 動作しますが、私には意味がありません。丸暗記で学んだコードを打ち込むのは嫌いです。