ホームページ ウェブフロントエンド jsチュートリアル js_javascript スキルに実装された寄付管理の完全な例

js_javascript スキルに実装された寄付管理の完全な例

May 16, 2016 pm 04:18 PM
js 成し遂げる 寄付する 管理

この記事の例では、js 寄付管理の完全な実装方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。

index.html ページは次のとおりです:

コードをコピー コードは次のとおりです:
"> js 寄付管理
<スクリプトタイプ="text/javascript"> //寄付単位の配列
var listOrgs = [
{ "id": "1", "comName": "One Fund" },
{ "id": "2", "comName": "宋清玲基金" },
{ "id": "3", "comName": "慈済財団" },
{ "id": "4", "comName": "赤十字" },
{ "id": "5", "comName": "ウルフ トーテム" }
];
//匿名メソッドを listOrgs 配列オブジェクトに動的に追加します
listOrgs.getOrgsById = 関数 (id) {
for (var i = 0; i If (listOrgs[i].id == id) {
Return listOrgs[i];// オブジェクトを返します
                                                                                                                                                                                                                                                             };
//寄付データ配列
var listData = [
{ "id": "1", "perName": "Jackie Chan", "orgId": "1", "money": "10000", "date": "2012-3-3" },
{ "id": "2", "perName": "Jet Li", "orgId": "2", "money": "10000", "date": "2012-3-3" },
{"id": "3"、 "pername": "chen guangbiao"、 "orgid": "3"、 "money": "10000"、 "date": "2012-3-3"}、
{ "id": "4", "perName": "胡錦濤", "orgId": "1", "money": "10000", "date": "2012-3-3" },
{ "id": "5", "perName": "zhouxingchi", "orgId": "2", "money": "10000", "date": "2012-3-3" },
。 { "id": "7", "perName": "Werewolf", "orgId": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "8", "perName": "Crazy Devil", "orgId": "3", "money": "10000", "date": "2012-3-3" },
{ "id": "9", "perName": "SanCrazy", "orgId": "3", "money": "10000", "date": "2012-3-3" }
];
// ページングクエリ配列
listData.fenyeQuery = function (pageNow, pageSize) {
var res = new Array(); //1. pageSize 5 に従って、最初のページは listData[0]-listData[4]、2 番目のページは listData[5]-listData[9] になります
//ページ 3 は listData[10]-listData[14]

var start = (pageNow - 1) * pageSize; var end = listData.length > (pageNow * pageSize) : listData.length;
            for (var i = start ; i < end; i ) {
                res[res.length] = リストデータ[i]; 
            }
            応答を返します。 
        }; 
 
        listData.queryByOrId = function (orid) {
            var arr = 新しい配列(); 
            for (var i = 0; i                 if (listData[i].orgId == orid) {
                    arr[arr.length] = listData[i]; 
                }
            }
 
            arrを返します。 
        }; 
 
        listData.idNum = listData.length; 
 
        listData.addRec = function(rec) {
            リストデータ.idNum ; 
            var newRec = { "id": listData.idNum, "perName":rec.perName, "orgId":rec.orgId, "money":rec.money, "date":rec.date }; 
            listData[listData.length] = newRec; 
            newRec を返します。 
        }; 

listData.updateRec = function(obj) {
for (var i = 0; i If (listData[i].id = obj.id) {
listData[i] = obj; 休憩
                                                                                                                                                                                                                                                             };
//パーソナリティをキャンセルするかどうかを検出するグローバル変数を定義します
var isCancelUpdate = false;
// 3 つのテキスト入力コントロールを定義します
var InputPerName = document.createElement("input"); InputPerName.type = "テキスト"

var InputMoney = document.createElement("input"); InputPerName.type = "テキスト"

var InputDate = document.createElement("input"); InputPerName.type = "テキスト"

var SeleteOrg = document.createElement("select");
listData.delRecById = 関数 (id) {
for (var i = 0; i If (listData[i].id == id) {
//消去                                                                                                      1. この ID の位置から開始し、後ろのすべての要素を 1 つの
に移動します。 最後の要素が繰り返されます、それはクリアする必要があります
                                                                  for (var j = i; j リストデータ[j] = リストデータ[j 1];                                                                                                                                                                                                                                                                                                                                                                                                     listData.length = listData.length - 1; };
//入力テキストボックスにテキストを変更します
function txtToInput(tdName, inputName) {
tdName.setAttribute("oldValue", tdName.innerHTML);//まず元のコンテンツを保存し、キャンセルされた場合は復元します
inputName.value = tdName.innerHTML; tdName.appendChild(inputName); tdName.removeChild(tdName.firstChild);
                                                                                                             
関数 txtToSelect(tdName, selObj) {
tdName.appendChild(selObj);tdName.removeChild(tdName.firstChild);
selObj.value = tdName.getAttribute("orgId");                                                                                                              
function selectorText(tdName) {
var orid = SeleteOrg.value;
var orgName = listOrgs.getOrgsById(orid).comName; // tdName.setAttribute("orgId", SeleteOrg.value); tdName.innerHTML = orgName;                                                                                                              
//入力をテキストに変換し直します
function InputToTxt(tdName, inputName) {
//「キャンセル」をクリックした場合
If (isCancelUpdate) {
tdName.innerHTML = tdName.getAttribute("oldValue");
                                                                                                                            // クリックして変更を確認します
tdName.innerHTML = inputName.value;                                                                                                                                                                                           //選択コントロールをテキストに戻します
関数 seleToTxt(tdName, selName) {
// tdName.appendChild(selName); var orgId = SeleteOrg.value;
// 前の
を削除します tdName.innerHTML = (listOrgs.getOrgsById(orgId)).comName;                                                                                                              
// 変更をキャンセル
関数 CancelUp(obj) {
IScanceelupDate = TRUE // クリックしてキャンセルします
doCancel(obj); isCancelUpdate = false;                                                                                                              
function doCancel(obj) {
var trCur = obj.parentElement.parentElement;
var tds = trCur.childNodes; //元の td (属性に保存) の下のすべての値を使用します
tds[1].innerHTML = tds[1].getAttribute("oldValue"); tds[2].innerHTML = listOrgs.getOrgsById(tds[2].getAttribute("orgId")).comName; tds[3].innerHTML = tds[3].getAttribute("oldValue"); tds[4].innerHTML = tds[4].getAttribute("oldValue"); tds[5].innerHTML = "削除 変更< ;/a>";
// isCancelUpdate = false; //キャンセルが成功したことを確認したら、trCur を null に設定します
trCur = null;                                                                                                               var trCur = null;
関数 UpObj(obj) {
If (trCur != null) {
// 編集中であることを説明し、変更をキャンセルします
iscancelupdate = true; //その行の編集をキャンセルします
doCancel(trCur.childNodes[5].firstChild);//trCur.childNodes[5].firstChild、これは前の行

の変更です。                                                                                                                            
// 現在の行を取得します
trCur = obj.parentElement.parentElement; var tds = trCur.childNodes; //ドナー入力変更
txtToInput(tds[1], InputPerName); //額 txtToInput(tds[3], InputMoney); //寄付日
txtToInput(tds[4], InputDate); //プルダウンしてユニットを選択します
txtToSelect(tds[2], SeleteOrg);
//リンクを変更してキャンセルします
tds[5].innerHTML = "
OK キャンセル< ;/a>";
                                                                                                                                                                                          // 変更を確認
関数 doUpObj(obj) {
isCancelUpdate = false; trCur = obj.parentElement.parentElement; //1. 配列
内の対応するレコードを変更します。 var rec = { "id": trCur.childNodes[0].innerHTML, "perName": trCur.childNodes[1].childNodes[0].value, "orgId": trCur.childNodes[2].childNodes[0] .value, "お金": trCur.childNodes[3].childNodes[0].value, "日付": trCur.childNodes[4].childNodes[0].value }; //ListData 内の対応するレコードを変更するメソッドを呼び出します
listData.updateRec(rec); //2. テーブル内のレコードを変更します

InputToTxt(trCur.childNodes[1], InputPerName); seleToTxt(trCur.childNodes[2], SeleteOrg); InputToTxt(trCur.childNodes[3], InputMoney); InputToTxt(trCur.childNodes[4], InputDate); trCur.childNodes[5].innerHTML = "
削除 ";

//trCur.childNodes[2].setAttribute("orgId", SeleteOrg.value); //変更が成功したことを確認したら、trCur を null に設定します
trCur = null; }

//データ行を削除

関数 DelObj(obj) {
// 配列内の対応する配列を削除
//1. 選択された行を取得します
var curTr = obj.parentElement.parentElement;
//2. 最初の列から id の値を取得します
var delId = curTr.cells[0].innerHTML; // window.alert(delId); //3. ID (配列内の listData) に基づいてレコードを削除します
listData.delRecById(delId); //4. テーブルビューに表示されている行を削除します
curTr.parentElement.removeChild(curTr); }

関数 gel(id) {
return document.getElementById(id);                                                                                                              
//1. ユニット名のバインディングをクエリします。selEle は次のとおりです: selet 要素ノード

関数 LoadOrgList(selEle) {

for (var i = 0; i var opt = new Option(listOrgs[i].comName, listOrgs[i].id); selEle.options.add(opt);                                                                                                                                                                                                                                           //2. テーブルをバインドするメソッド、およびテーブルと listData をバインドするメソッド

関数 LoadDataList() {
//for (var i = 0; i 追加Row(listData[i]);                                                                 //ページ表示
ShowPage();
}

関数 addRow(obj) {
var trnew = gel("tbList").insertRow(-1); var tdnew = trnew.insertCell(-1);
tdnew.innerHTML = obj.id; trnew.insertCell(-1).innerHTML = obj.perName;

var trOrgName = trnew.insertCell(-1); trOrgName.setAttribute("orgId", obj.orgId); trOrgName.innerHTML = (listOrgs.getOrgsById(obj.orgId)).comName; trnew.insertCell(-1).innerHTML = obj.money; trnew.insertCell(-1).innerHTML = obj.date; trnew.insertCell(-1).innerHTML = "
削除 変更";

}

window.onload = function() {
//バインディングクエリ
LoadOrgList(gel("selSearchOrg")); //寄付の受取人をバインド
LoadOrgList(gel("selAddOrg")); LoadOrgList(SeleteOrg); //テーブルと listData をバインド
LoadDataList();

//イベントを新しいボタンにバインドします
gel("btnAdd").onclick = function() {
If ((!(gel("txtName").value)) || (!(gel("txtMoney").value) || (!(gel("txtDate").value)))) {
alert("入力を空にすることはできません");
                                                                                                                                
//1. 入力コンテンツを取得し、それをオブジェクトにパッケージ化します (listData 形式に従って)
var arr = { "perName": gel("txtName").value, "orgId": gel("selAddOrg").value, "money": gel("txtMoney").value, "date": gel(" txtDate").value };
//2. listData 配列に追加します
var res = listData.addRec(arr); //3. テーブルに表示します
var trnew = gel("tbList").insertRow(-1); 印刷、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 in in、in、in、in、in、... in、、 - in、... trnew.insertCell(-1).innerHTML = res.perName;
var tdOrg = trnew.insertCell(-1); tdOrg.setAttribute("orgId", res.orgId); tdOrg.innerHTML = listOrgs.getOrgsById(res.orgId).comName; 古いもの - trnew.insertcell(-1).innerhtml = res.moneyになるように not "-Trnew.insertcell(-1).innerhtml = res.date;
trnew.insertCell(-1).innerHTML = "削除 変更";
};
//イベントをクエリボタンにバインドします
gel("btnSearch").onclick = function () {
If (gel("selSearchOrg").value == -1) {

                                                                                                                                
//1. クエリ対象の寄付されたユニットの orgid を取得します
var orgId = gel("selSearchOrg").value;
//2. ListData 配列の orgid に基づいてクエリするメソッドを定義し、ここで呼び出します
var arrRes = listData.queryByOrId(orgId); //3. 古いテーブル データを表示から削除し、必ず表示を下から上にクリアしてください
var trs = gel("tbList").rows;
for (var j = trs.length-1; j>0; j--) {
gel("tbList").deleteRow(j);                                                                                                                                  //4. 新しいデータの表示
for (var i = 0; i addRow(arrRes[i]);                                                                                                             }

//イベントを前のページにバインドします
gel("btnprePage").onclick = function() {
If (pageNow > 1) {
今すぐページ
showPage();                                                                                                   alert("すでに最初のページです!")
                                                                                                                 }; //イベントを次のページにバインドします
gel("btnnextPage").onclick = function () {
If(pageNow                                                                             今すぐページ
showPage();                                                                                                                                                                                                              alert("最後のページです!");                                                                                                             }; }; var pageNow = 1;
var pageSize = 5; 関数 showPage() {
var trs = gel("tbList").rows;
for (var j = trs.length - 1; j > 0; j--) {
gel("tbList").deleteRow(j);                                                                                                                            
//1. pageNow と pageSize
に基づいて配列を返します。 var res = listData.fenyeQuery(pageNow, pageSize); for (var i = 0; i addRow(res[i]);                                                                                                                                                                                                                                          


                                                                                                                                                                                                                                寄付先
&lt; select id = "selsearchorg"&gt; &lt; option value = "-1"&gt; - 選択 - &lt;/option&gt;                                                                                                                                        
       
 
       
 
            捐赠人: 
            受捐单位:
             
             
            金额: 
            受捐日期: 
           
       
 
         
             
                 
                 
                 
                 
                 
                 
             
         
     
 

css.css如下:

复制代码代码如下:
* {
      マージン: 0px; 
      パディング: 0px; 
  }
 
  ボディ {
      幅: 900ピクセル; 
      マージン: 0px 自動; 
      パディングトップ: 20px; 
  }
 
  h1 {
      パディング: 15px; 
      テキスト整列: 中央; 
  }
 
  #container {
      幅: 900ピクセル; 
      高さ: 自動; 
  }
 
  .header、.search {
      幅: 900ピクセル; 
      高さ: 30ピクセル; 
      行の高さ: 30px; 
      ボーダー: 1px ソリッド #0094ff; 
      マージントップ: 3px; 
      パディング: 0px 5px; 
  }
 
  .tbList {
      幅: 912ピクセル; 
      高さ: 自動; 
  }
 
      .tbList th {
          ボーダー: 1px ソリッド #000; 
          背景: #0094ff; 
          高さ: 30ピクセル; 
          フォントの太さ: 太字; 
          行の高さ: 30px; 
          色: #fff; 
      }
 
  .inputShort {
      幅: 100ピクセル; 
  }
 
  .btn {
      幅: 70ピクセル; 
      高さ: 25px; 
      行の高さ: 25px; 
      フォントの太さ: 太字; 
      テキスト整列: 中央; 
  }
 
  td {
      境界線: 1 ピクセルの実線。 
      高さ: 25px; 
      テキストインデント: 1em; 
      境界崩壊: 崩壊; 
  }

ここで説明されている大家向けの JavaScript プログラムの設計が役立つことを望みます。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか? Mar 24, 2024 am 11:27 AM

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

PHP プログラミング ガイド: フィボナッチ数列を実装する方法 PHP プログラミング ガイド: フィボナッチ数列を実装する方法 Mar 20, 2024 pm 04:54 PM

プログラミング言語 PHP は、さまざまなプログラミング ロジックやアルゴリズムをサポートできる、Web 開発用の強力なツールです。その中でも、フィボナッチ数列の実装は、一般的で古典的なプログラミングの問題です。この記事では、PHP プログラミング言語を使用してフィボナッチ数列を実装する方法を、具体的なコード例を添付して紹介します。フィボナッチ数列は、次のように定義される数学的数列です。数列の最初と 2 番目の要素は 1 で、3 番目の要素以降、各要素の値は前の 2 つの要素の合計に等しくなります。シーケンスの最初のいくつかの要素

Huawei携帯電話にWeChatクローン機能を実装する方法 Huawei携帯電話にWeChatクローン機能を実装する方法 Mar 24, 2024 pm 06:03 PM

Huawei 携帯電話に WeChat クローン機能を実装する方法 ソーシャル ソフトウェアの人気と人々のプライバシーとセキュリティの重視に伴い、WeChat クローン機能は徐々に人々の注目を集めるようになりました。 WeChat クローン機能を使用すると、ユーザーは同じ携帯電話で複数の WeChat アカウントに同時にログインできるため、管理と使用が容易になります。 Huawei携帯電話にWeChatクローン機能を実装するのは難しくなく、次の手順に従うだけです。ステップ 1: 携帯電話システムのバージョンと WeChat のバージョンが要件を満たしていることを確認する まず、Huawei 携帯電話システムのバージョンと WeChat アプリが最新バージョンに更新されていることを確認します。

Golang がゲーム開発の可能性を可能にする方法をマスターする Golang がゲーム開発の可能性を可能にする方法をマスターする Mar 16, 2024 pm 12:57 PM

今日のソフトウェア開発分野では、効率的で簡潔かつ同時実行性の高いプログラミング言語として、Golang (Go 言語) が開発者にますます好まれています。豊富な標準ライブラリと効率的な同時実行機能により、ゲーム開発の分野で注目を集めています。この記事では、ゲーム開発に Golang を使用する方法を検討し、具体的なコード例を通じてその強力な可能性を示します。 1. ゲーム開発における Golang の利点 Golang は静的型付け言語として、大規模なゲーム システムの構築に使用されます。

PHP ゲーム要件実装ガイド PHP ゲーム要件実装ガイド Mar 11, 2024 am 08:45 AM

PHP ゲーム要件実装ガイド インターネットの普及と発展に伴い、Web ゲーム市場の人気はますます高まっています。多くの開発者は、PHP 言語を使用して独自の Web ゲームを開発することを望んでおり、ゲーム要件の実装は重要なステップです。この記事では、PHP 言語を使用して一般的なゲーム要件を実装する方法を紹介し、具体的なコード例を示します。 1. ゲームキャラクターの作成 Web ゲームにおいて、ゲームキャラクターは非常に重要な要素です。ゲームキャラクターの名前、レベル、経験値などの属性を定義し、これらを操作するメソッドを提供する必要があります。

jsとvueの関係 jsとvueの関係 Mar 11, 2024 pm 05:21 PM

js と vue の関係: 1. Web 開発の基礎としての JS、2. フロントエンド フレームワークとしての Vue.js の台頭、3. JS と Vue の補完関係、4. JS と Vue の実用化ビュー。

ディスクをパーティション分割する方法 ディスクをパーティション分割する方法 Feb 25, 2024 pm 03:33 PM

ディスク管理をパーティション分割する方法 コンピュータ技術の継続的な発展に伴い、ディスク管理はコンピュータの使用に不可欠な部分になりました。ディスク管理の重要な部分として、ディスク パーティショニングによりハード ディスクを複数の部分に分割し、データをより柔軟に保存および管理できるようになります。では、パーティションディスクを管理するにはどうすればよいでしょうか?以下、詳しくご紹介していきます。まず、ディスクのパーティション分割方法は 1 つだけではなく、さまざまなニーズや目的に応じて柔軟に選択できることを明確にする必要があります。頻繁

See all articles
序号捐赠人受捐单位金额受捐日期間操作