jQuery Ajax動作の解析(2) データ転送

零下一度
リリース: 2017-06-17 17:51:11
オリジナル
1107 人が閲覧しました

前の記事では、<a href="http://www.php.cn/wiki/1495.html" target="_blank">jquery</a> Ajax のデータ読み込みについて紹介しました。 code> サンプルはすべて <a href="http://www.php.cn/wiki/188.html" target="_blank">静的</a> ファイルからデータを取得しますが、<code>Ajax code> より大きな価値は、動的にデータを要求して送信するバックエンド サーバーとのデータ転送にあります。 <code><a href="http://www.php.cn/wiki/1495.html" target="_blank">jquery</a> Ajax 的数据加载中的例子都是从静态的文件中取得数据,而 Ajax 更大的价值在于与后端服务器进行数据传递,动态地请求和发送数据。

请求数据

我们可以使用 GET、POST 两种方式向后端请求数据,这里以 PHP 为例,假设有测试页面 age.php,用于返回年龄信息,内容为:

if(isset($_REQUEST['name']) && $_REQUEST['name'] == 'stephen') {
    echo '23';
}
ログイン後にコピー

当前页面内容为:

<p>
  <a href="age.php">stephen</a>
  <span>age : </span>
  <span id="sex"></span>
</p>
ログイン後にコピー

细说 jQuery Ajax操作篇(二) - 数据传递

我们希望点击 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);
    });
  });
ログイン後にコピー

点击 a 标签后,当前页面为:

细说 jQuery Ajax操作篇(二) - 数据传递

数据请求成功。我们再用 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);
    });
  });
ログイン後にコピー

代码几乎一样,只是由 get 方法变为了 post 方法。
这里我们其实还可以用 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>
ログイン後にコピー

细说 jQuery Ajax操作篇(二) - 数据传递

假设当用户名为 stephenlee,密码为 123456 时验证通过,否则失败,测试页面 validate.php 为:

if($_REQUEST['username'] == 'stephenlee' && $_REQUEST['password'] == '123456') {
    echo 'pass';
} else {
    echo 'fail';
}
ログイン後にコピー

使用 get 方式发送数据到后端验证:

  $('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);
    });
  });
ログイン後にコピー

输入错误用户名 lucas 后,结果为:

细说 jQuery Ajax操作篇(二) - 数据传递

输入正确用户名 stephenlee 后,结果为:

细说 jQuery Ajax操作篇(二) - 数据传递

使用 post

データのリクエスト

GET と POST を使用してバックエンドからデータをリクエストできます。ここでは、PHP があると仮定して、例として取り上げます。テスト ページ age.php は、年齢情報を返すために使用されます。コンテンツは次のとおりです: 🎜rrreee🎜 現在のページのコンテンツは次のとおりです: 🎜rrreee🎜jQuery Ajax 操作の詳細 (2) - データ転送🎜🎜a タグをクリックした後、 、ページが更新されない前提で年齢情報を取得します。まず、GET メソッドを使用してデータをリクエストします: 🎜

GET メソッド

rrreee🎜 a タグをクリックすると、現在のページは次のようになります: 🎜🎜jQuery Ajaxの操作詳細(2) - データ転送🎜🎜データリクエスト成功。 POST メソッドを使用して再度テストしてみましょう: 🎜

POST メソッド

rrreee🎜 コードは、get メソッドが post code> メソッド。
ここでは実際に load メソッドを使用してコードを簡素化できます: 🎜rrreee

データの送信

🎜 Ajax テクノロジーの使用に加えてバックエンドからデータを取得する 一般的なシナリオは、フォームを非同期的に送信することです: 🎜rrreee🎜jQuery Ajax 操作の詳細 (2) - データ転送🎜🎜ユーザー名が stephenlee であるとします。パスワードが 123456 の場合、検証は成功します。それ以外の場合、テスト ページ validate.php は次のようになります。 🎜rrreee🎜 get メソッドを使用して、検証のためにバックエンドにデータを送信します: 🎜rrreee🎜入力エラー ユーザー名が lucas の場合、結果は次のようになります: 🎜🎜jQuery Ajax 操作の詳細 (2) - データ転送🎜🎜正しいユーザー名 stephenlee を入力すると、結果は次のようになります。 : 🎜🎜jQuery Ajax の操作詳細(2) - データ転送🎜🎜データを送信するには、post メソッドを使用します。考え方は同じなので、詳細は説明しません。 🎜

以上がjQuery Ajax動作の解析(2) データ転送の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート