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

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

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

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

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

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

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


ログイン後にコピー

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

を持つテーブルです。
<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メソッドを書きます
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. 次にテーブル

を操作します。
//删除行
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. まず、テーブル内のデータを取得する方法、または上記の例と組み合わせる方法を見てみましょう

<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タグのパラメータを取得します

var msg = $("#submitForm").serialize();  //获得后的msg的值:canshu1=xxx&canshu2=xxx&canshu3=xxx&canshu4=xxx&canshu5=xxx
ログイン後にコピー

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

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 を介して処理できるようになります。

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

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