データのリクエスト
バックエンドからデータをリクエストするために GET と POST を使用できます。ここでは、年齢情報を返すために使用されるテスト ページ age.php があると仮定します。
if(isset($_REQUEST['name']) && $_REQUEST['name'] == 'stephen') { echo '23'; }
<div> <a href="age.php">stephen</a> <span>age : </span> <span id="sex"></span> </div>
aタグをクリックした後、ページを更新せずに年齢情報を取得したいと考えています。最初に GET メソッドを使用してデータをリクエストします:
GET メソッド
$('a').click(function(e) { e.preventDefault();// var url = $(this).attr('href'), name = $(this).text(), requestData = {'name': name}; $.get(url, requestData, function(data) { $('#sex').html(data); }); });
データリクエストは成功しました。 POST メソッドを使用してもう一度テストしてみましょう:
POST メソッド
$('a').click(function(e) { e.preventDefault();// var url = $(this).attr('href'), name = $(this).text(), requestData = {'name': name}; $.post(url, requestData, function(data) { $('#sex').html(data); }); });
ここでは実際にloadメソッドを使用してコードを簡素化できます:
$('a').click(function(e) { e.preventDefault(); var url = $(this).attr('href'), name = $(this).text(), requestData = {'name': name}; $('#sex').load(url, requestData); });
Ajax テクノロジーを使用してバックエンドからデータを取得するだけでなく、フォームを非同期で送信することもできます。例として次のとおりです。
<form action="validate.php"> username:<input id="username" name="username" type="text" /> password:<input id="password" name="password" type="text" /> <input value="submit" type="submit" /> </form>
ユーザー名が stephenlee でパスワードが 123456 の場合は検証が成功すると仮定します。それ以外の場合、テスト ページ validate.php は次のようになります。
if($_REQUEST['username'] == 'stephenlee' && $_REQUEST['password'] == '123456') { echo 'pass'; } else { echo 'fail'; }
$('form').submit(function(e) { e.preventDefault();// var url = $(this).attr('action'), username = $('input[name="username"]').val(), password = $('input[name="password"]').val(), requestData = {'username': username, 'password': password}; $.get(url, requestData, function(result) { alert(result); }); });
正しいユーザー名 stephenlee を入力すると、結果は次のようになります:
post メソッドを使用してデータを送信するという考え方は同じなので、ここでは詳しく説明しません。