ホームページ > ウェブフロントエンド > jsチュートリアル > 親と子の間で JSON 形式でデータを転送するためのコード Forms_json

親と子の間で JSON 形式でデータを転送するためのコード Forms_json

WBOY
リリース: 2016-05-16 18:13:26
オリジナル
1150 人が閲覧しました

第 1 レベルの評価項目に評価サブ項目が含まれている場合、その評価項目をクリックすると、新しいウィンドウが開き、ユーザーが操作できる現在の評価項目のすべての評価サブ項目のリストが表示されます。ユーザーの操作が完了したら、「OK」ボタンをクリックして親フォームに戻り、子フォームのすべての操作結果が同時に親フォームに反映されます。同時に、サブフォームがポップアップしている間にユーザーが評価項目を再度クリックすると、最後の操作の結果が対応する操作項目にバインドされる必要があります。

上で説明した例には、親フォームと子フォーム間のデータ転送が含まれます。もちろん、このデータ転送を実装するにはさまざまな方法があります。ここでは、この例で使用したメソッドを記録します。私の方法は、サブフォームが「OK」ボタンをクリックしたときに操作結果をjson形式の文字列に構築し、親フォームのメソッドopener.method()を呼び出してjson形式のデータを親フォームに転送するというものです。

この例で構築された json データは、次の形式に似ています:

{"MyD​​ata":[

{"bh":"111","lx" :"1 ","df":"10","bz":"aaa"},

{"bh":"112","lx":"2","df":" 20", "bz":"bbb"},

{"bh":"113","lx":"2","df":"30","bz":"ccc" }

]}

維持する必要があるサブ項目スコアは、bh: 数値、lx: タイプ、bz: 備考です。

独自のニーズに応じて、メンテナンスが必要な項目を追加できます。この json データはフォアグラウンドまたはバックグラウンドで構築できます。

この例では背景を配置しました。コードは次のとおりです:

コードをコピー コードは次のとおりです:

StringBuilder jsonBuilder = new StringBuilder( );
jsonBuilder.Append("@{"");
jsonBuilder.Append("":["); >
int k = bh.Split(',').Length 1;
for (int i = 0; i
{
tem = "KH_PFX セット DF = '" EncriptLib.EncriptLib.EncodeCode(Convert.ToDouble(df.Split(',')[i].ToString().Trim())) "',"; >tem = "BZ = '" bz.Split(',')[i].ToString().Trim() "',PFRXM = '" Session["XM"].ToString() "',"; 🎜>tem = "PFRBH = '" Session["YHBH"].ToString() "',PFRQ = to_date('" DateTime.Now.ToShortDateString() "','yyyy-MM-dd')"; >tem = " where BH = '" bh.Split(',')[i].ToString().Trim() "'";
tem = "卐";個別の SQL ステートメント

jsonBuilder.Append("{"bh":" """ bh.Split(',')[i].ToString().Trim() """ ",");
jsonBuilder.Append(""lx":" """ lx.Split(',')[i].ToString().Trim() """ ","); ""df": " "" df.Split(',')[i].ToString().Trim() """ ",");
jsonBuilder.Append(""bz":" " "" bz.Split (',')[i].ToString().Trim() """ "},");
}
if(tem != "")
{
jsonBuilder.Remove (jsonBuilder.Length - 1, 1);
jsonBuilder.Append("}"); (GetType(), "cg", "<Script>window.close();opener.GetZXDF('zxdf" Request.QueryString["bh"].ToString() "','"parent_df.Text.Trim( ) "',' " jsonBuilder.ToString() "',"" tem "");</Script>");
}


「@」記号は回避できますjsonBuilder.ToString() の後、エスケープ文字 "" は消えます。

親フォームの GetZXDF() メソッドを呼び出して、json データを親フォームに渡します。

以下は、サブフォームのロード時に JSON データをバインドするコードです




コードをコピー


コードは次のとおりです:

$.each(data, function(i, n) {
if(n.lx == "1"){
//直接分類バインディング
$("#lx" n.bh).siblings("input").eq(0).val(n.df);
$("#lx" n.bh).siblings を定義します。 ( "input").eq(1).val(n.df);
$("#lx" n.bh).parent().parent().next().children().children( " textarea").val(n.bz);
}
if(n.lx == "2"){
//オプション分類のバインディング

$(" # lx" n.bh).siblings("input:text").eq(1).val(n.df);
$("#lx" n.bh).siblings("input:checkbox" ) .each(function(){
if($.trim($(this).val()) == $.trim(n.df)){
$(this).attr("checked " ,true);
}
});
$("#lx" n.bh).parent().parent().parent().next().children().children ( "textarea").val(n.bz);
}
});


opener.GetJson() メソッドが子フォームの json に渡されます。 data メソッドのコードは次のとおりです:




コードをコピー


コードは次のとおりです:

// 対応する評価項目のサブ項目の採点結果のjson文字列を数値で取得
function GetJson(p_bh)
{

//$("# zxdf" p_bh ).siblings("input").eq(1).val() は、子フォームから親フォームに渡された JSON データを格納します
return $("#zxdf" p_bh).siblings("input " ).eq(1).val();
}
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート