ホームページ >バックエンド開発 >PHPチュートリアル >Ajaxで動的データロードの強みの共有を実現

Ajaxで動的データロードの強みの共有を実現

小云云
小云云オリジナル
2017-12-26 11:22:321861ブラウズ

この記事では主に Ajax の動的データ読み込みの小さな例を詳しく紹介します。興味のある方は参考にしていただければ幸いです。

前書き:

1. このエッセイでは、Ajax 動的読み込みの例を実装します。

2. .net MVC フレームワークを使用して実装されます。

3. この例はフロントエンドとバックエンドの対話に焦点を当てており、その他は省略されています。

開始:

1. コントローラー ActionResult コード (ページの表示に使用)


    /// <summary>
    /// 电话查询页面
    /// </summary>
    /// <returns></returns>
    public ActionResult PhoneSearch(string sql)
    {
      phoneList=从数据库查询数据;
      ViewBag.phoneList = phoneList;
      return View();
    }

2. フロントページのメインコード

説明: これはデータを表示するテーブルとその内部のフィールドです。あなたのものと同じである必要があります。構築されたモデルは一致します。


<table border="1" cellspacing="0" cellpadding="0" class="toLang" id="phoneTable">
              <tr>
                <th>序号</th>
                <th>公司</th>
                <th>部门</th>
                <th>小组</th>
                <th>姓名</th>
                <th>职位</th>
                <th>电话</th>
              </tr>
              <tbody id="todeListTBODY">
                @if (ViewBag.phoneList != null)
              {
                foreach (var item in ViewBag.phoneList)
                {
                  number = number + 1;
              <tr>
                <td>@number</td>
                <td>@item.Conpany</td>
                <td>@item.Department</td>
                <td>@item.Team</td>
                 <td>@item.Name</td>
                 <td>@item.Position</td>
                 <td>@item.PhoneNumber</td>
                  </tr>
                }
              }
              </tbody>
            </table>

3. 私のクエリ条件


 <p style="display:block;float:left; width:100%; ">
          公司:
          <select class="InputTestStyle" id="company" onclick="initDeptSelect()">
            <option>==请选择公司==</option>
          </select>
          部门:
          <select class="InputTestStyle" id="department" onclick="initGroupSelect()">
            <option>==请选择公司==</option>
          </select>
          小组:
          <select class="InputTestStyle" id="group" onclick="QueryPhoneNum()">
            <option>==请选择公司==</option>
          </select>
 </p>

4. クエリ条件の初期化 (会社を例にします)

4.1 フロントエンド JavaScript コード


  //打开页面的时候执行
  window.onunload = initCompanySelect();
  //初始化“公司”下拉框
  function initCompanySelect()
  {
    $.ajax({
      type: &#39;POST&#39;,
      url: &#39;/Home/GetCompantListForPhone&#39;,
      dataType: &#39;json&#39;,
      data: { },
      success: function (data) {
        //1.清空这个下拉框的数据
        // $(&#39;#company option&#39;).remove();//也能成功实现
        $(&#39;#company&#39;).empty();
        $("#company").append($(&#39;<option>&#39; + &#39;==请选择公司==&#39; + &#39;</option>&#39;));
        //2.将返回值动态加载进下拉框,动态生成标签。
        for (i = 0; i < data.length;i++)
        {
          $("#company").append($(&#39;<option >&#39; + data[i].Conpany + &#39;</option>&#39;));
        }
      },
      error: function (XMLHttpRequest, textStatus, errorThown) {
        alert("操作失败!");
      }
    })
  }

4.2 初期化ドロップダウンActionResult コードに対応するボックス


/// <summary>
/// 获取电话查询公司下拉数据
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult GetCompantListForPhone()
{
  
  compantList = 从数据库获取这个下拉框数据的集合;
  return Json(compantList);
}

他の 2 つのドロップダウン ボックスがこのメソッドに従って完了した後。条件に基づいてクエリを実行できます。次の 2 つは、JavaScript とバックグラウンド メソッドを組み合わせて使用​​します。

5. クエリをバックグラウンドに送信し、返されたセットに基づいてテーブルを再割り当てします。


//根据条件查询电话
  function QueryPhoneNum()
  {
    if ($(&#39;#group&#39;).val() == &#39;==请选择小组==&#39;)
    {
      return;
    }
    number = 0;
    $.ajax({
      type: &#39;POST&#39;,
      url: &#39;/Home/PhoneSearchSubmit&#39;,
      dataType: &#39;json&#39;,
      data: {
        company:$(&#39;#company&#39;).val(),
        dept: $(&#39;#department&#39;).val(),
        group: $(&#39;#group&#39;).val()
      },
      success: function (phoneList) {
        //1.清空这个表格的数据
        $(&#39;#todeListTBODY tr&#39;).remove();
        
        //2.将返回值动态加载进表格。
        $.each(phoneList, function (index, element) {
          number = number + 1;
          $(&#39;#todeListTBODY&#39;).prepend(function (i) {
            return "<tr>" +
               "<td>" +number +
               "<td>" + element.Conpany +
               "<td>" + element.Department +
               "<td>" + element.Team +
               "<td>" + element.Name +
               "<td>" + element.Position +
               "<td>" + element.PhoneNumber +
               "</tr>";
          })
        })
      },
      error: function (XMLHttpRequest, textStatus, errorThown) {
        alert("操作失败!");
      }
    })
  }

5.1 クエリデータに対応するActionResult


/// <summary>
/// 电话查询
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult PhoneSearchSubmit(string company, string dept, string group)
{
  phoneList = 根据条件查询数据;
  return Json(phoneList);
}

関連推奨事項:

コンボボックスの例の動​​的ロードのAjax実装の詳細

JavaScriptはAjaxを使用してCheckBoxチェックボックスを動的にロードします

Java が動的に読み込まれるコード例を実装する方法

以上がAjaxで動的データロードの強みの共有を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。