ホームページ > ウェブフロントエンド > jsチュートリアル > JS はテーブルの動的な生成を実装し、テーブル データを backend_javascript スキルに送信します。

JS はテーブルの動的な生成を実装し、テーブル データを backend_javascript スキルに送信します。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-16 15:17:30
オリジナル
2295 人が閲覧しました

この記事の例では、テーブルを動的に生成し、テーブル データをバックエンドに送信するための JS の関連コードを紹介します。具体的な内容は次のとおりです。

まず要件を見てみましょう。Web ページ上にテーブルを動的に生成し、テーブル内のデータを編集して、テーブル内のデータを保存するためにバックエンド サーバーに送信します。

次に、最初に解決する必要があるのは、テーブルを動的に生成する問題です

1. まず、JS ライブラリ ファイルをインポートする必要があります。

1

<script src="../js/jqui/jquery/jquery-1.5.2.min.js" type="text/javascript"></script>

ログイン後にコピー

2. 次に、事前にページ div に空のテーブルを作成します。これは、ヘッダー

を持つテーブルです。

1

2

3

4

5

6

7

8

9

10

<table border="0" style="text-align: center;" width="100%" id="myTable">

 <tr>

  <td width="150px;">表头1</td>

  <td width="150px;">表头2</td>

  <td width="150px;">表头3</td>

  <td width="150px;">表头4</td>

  <td width="150px;">表头5</td>

  <td width="150px;">操作</td>

 </tr>

</table>

ログイン後にコピー

3. テーブルが作成されたら、テーブルを動的に生成するためのキー コードを記述できます。

をトリガーするためのjsメソッドを書きます

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

var num = 0;

  function addTable(){

    var tableHtml ="";

    tableHtml += '<tr id="tr'+num+'">'

         +'<td><input class="addtd" id="cnashu1'+num+'" style="width:150px;" type="text" name="cnashu1" /></td>'

         +'<td><input class="addtd" id="cnashu2'+num+'" style="width:150px;" type="text" name="cnashu2"/></td>'

         +'<td><input class="addtd" id="cnashu3'+num+'" style="width:150px;" type="text" name="cnashu3"/></td>'

         +'<td><input class="addtd" id="cnashu4'+num+'" style="width:150px;" type="text" name="cnashu4"/></td>'

         +'<td><input class="addtd" id="cnashu5'+num+'" style="width:150px;" type="text" name="cnashu5"/></td>'

         +'<td><a style="cursor: pointer; color: blue;" onclick="removeTr('+num+')">删除</a>'

           +'<a id="edit'+num+'" class="edit" style="cursor: pointer; color: blue;" onclick="editDataByOne('+num+')">修改</a>'

           +'<a id="save'+num+'" class="hide" style="cursor: pointer; color: blue;" onclick="saveByOne('+num+')">保存</a>'

         +'</td>'

         +'</tr>';

     

    var elements = $("#myTable").children().length;  //表示id为“mtTable”的标签下的子标签的个数

     

    $("#myTable").children().eq(elements - 1).after(tableHtml); //在表头之后添加空白行

    num++;  

  }

ログイン後にコピー

タグに タグを追加したことがわかります。これは主にユーザー入力パラメータを提供するために使用され、グローバル変数 num は主に追加された各パラメータの ID を区別するために使用されます。独自性があるから存在する。

4. 次にテーブル

を操作します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//删除行

function removeTr(trNum){

  $("#tr"+trNum).remove();

}

//编辑行

function editDataByOne(trNum){

  $this = $("#tr"+trNum);

  $(".addtd",$this).removeAttr("readonly");

}

//保存行

function saveByOne(trNum){

  $this = $("#tr"+trNum);

  $(".addtd",$this).attr("readonly","readonly");

}

ログイン後にコピー

上記の表では削除、編集、保存などの操作を行っていますが、具体的な操作内容は必要に応じて調整できます。 (実は後で調べたら、global num は必要なく、行を追加する操作も実装できることが分かりました。実装方法については、主に js の操作です。時間があるときに勉強します。)

この時点で、テーブルを動的に生成するためのページ コードが完成しました。
記事の前半では、テーブルを動的に生成する方法について説明しました。次に、で複数のデータを取得する方法について説明します。テーブルを作成し、バックエンド サーバーに送信します。

私も開発前にインターネットで情報を調べましたが、簡潔すぎたり、わかりにくかったりしましたが、そのほとんどが Json を使用してバックグラウンドに複数のパラメータを渡すことに言及していたので、この考えに基づいて次のように書きました。コード。

1. まず、テーブル内のデータを取得する方法、または上記の例と組み合わせる方法を見てみましょう

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div>

  <form id="submitForm">

    <table border="0" style="text-align: center;" width="100%" id="myTable">

      <tr>

        <td width="150px;">表头1</td>

        <td width="150px;">表头2</td>

        <td width="120px;">表头3</td>

        <td width="120px;">表头4</td>

        <td width="80px;">表头5</td>

        <td width="100px;">操作</td>

      </tr>

    </table>

   </form>

   <input type="button" value="添加" onclick="addTable();">

   <input type="button" value="提交" onclick="save();">

 </div>

ログイン後にコピー

Table タグの外側に form タグを追加し、form タグの ID を設定していることがわかります。

2. 次に、jQueryの「serialize()」メソッドに従って、inputタグのパラメータを取得します

1

var msg = $("#submitForm").serialize();  //获得后的msg的值:canshu1=xxx&canshu2=xxx&canshu3=xxx&canshu4=xxx&canshu5=xxx

ログイン後にコピー

3. テーブル内のデータを取得したら、その値の形式に従って JSON 形式のデータに変換します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

var json = "[{";

var msg2 = msg.split("&");   //先以“&”符号进行分割,得到一个key=value形式的数组

var t = false;

for(var i = 0; i<msg2.length; i++){

  var msg3 = msg2[i].split("=");  //再以“=”进行分割,得到key,value形式的数组

  for(var j = 0; j<msg3.length; j++){

    json+="\""+msg3[j]+"\"";

    if(j+1 != msg3.length){

      json+=":";

    }

    if(t){

      json+="}";

      if(i+1 != msg2.length){  //表示是否到了当前行的最后一列

        json+=",{";

      }

      t=false;

    }

    if(msg3[j] == "canshu5"){  //这里的“canshu5”是你的表格的最后一列的input标签的name值,表示是否到了当前行的最后一个input

      t = true;

    }

  }

  if(!msg2[i].match("canshu5")){  //同上

    json+=";";

  }

           

}

json+="]";

//最终msg的值就被转换为:[{"key":"value";"key":"value"},{"key":"value";"key":"value"}]格式的json数据<br />

ログイン後にコピー
上記のコードにより、テーブル内の複数のデータを json 形式のデータに変換することができました。その後、その Json データをバックグラウンドに送信して、ajax を介して処理できるようになります。

この時点で、フォーム内の複数のデータを取得してサーバーに送信するコードの作成が完了しました。これが皆さんの学習に役立つことを願っています。

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