MODNOTE: {} タグを使用してコードをフォーマットしましたが、見栄えが悪いです。私は今それを修正しようとしています。
私の具体的な質問は次のとおりです。
JavaScript変数でフラグを設定しています。私がやっている方法は合理的なアプローチですか?
このサイトや他の場所でこれを少し調べたところ、フラグは (1) 配列で、(2) 非表示の HTML 要素で、(3) Cookie で「設定」できることがわかりました。.data() でフラグを設定することについては何も見たことがありません。
if/elseステートメントで決定を下すために1ページで使用するフラグを設定する「エレガント」、「標準」、「受け入れられる」方法はありますか? このような状況でどのようにフラグを設定しますか?
私のコードは以下の通りです:
「準備完了」後、フラグを「未設定」に設定します。
ボタンをクリックして新しい情報をテーブルに入力します - フラグは「追加」に設定されています
既存のデータのテーブルの行をクリックします - フラグは「更新」に設定されています
フラグが「追加」の場合は ajax を使用してテーブルに追加し、フラグが「更新」の場合はデータベース内の行を更新します。
コード
$(document).ready(function() {
var flagaddupdate = "notset";
$("#onsetdate").mask("99-99-9999");
$("#entrydate").mask("99-99-9999");
$("#uonsetdate").mask("99-99-9999");
$("#uentrydate").mask("99-99-9999");
$(function(e) {
$("#reaction").autocomplete({
source: [ "none", "rash/hives", "Nausea/vomiting", "Diarrhea", "Headache", "Dizziness" ],
minlength: 1
});
});
$("#addintoleranceenterbutton").click(function() {
flagaddupdate = "add";
$( "#addintolerancetable" ).dialog(
{height: 320,
width: 450,
modal: true}
);
});//end of add click
$("#patienttable tr").click(function() {
flagaddupdate = "update";
$( "#addintolerancetable" ).dialog(
{height: 320,
width: 450,
modal: true}
);
uniqueid = $(this).find("#uniqueid").html();
$.ajax({
type: "POST",
url: "readintolerancebackend.php",
data: {uniqueid: uniqueid},
dataType : 'json',
})
.done(function(result){
$('#namegen').val(result['namegen']);
$('#nametrade').val(result['nametrade']);
$('#reaction').val(result['reaction']);
$('#onsetdate').val(result['onsetdate']);
$('#entrydate').val(result['entrydate']);
if ( result['status'] == "Active" )
{ $('#active').prop('checked',true);}
else
{ $('#inactive').prop('checked',true);}
})
.always(function(data, textStatus, jqXHR){
console.log(data, textStatus, jqXH);
});
});//end of update click
$("#submitbutton").click(function() {
var namegen = $('#namegen').val();
var nametrade = $('#nametrade').val();
var reaction = $('#reaction').val();
var onsetdate = $('#onsetdate').val();
var entrydate = $('#entrydate').val();
var status = $('input:radio[name=status]:checked').val();
if (flagaddupdate == "add")
{
$.ajax({
type: "POST",
url: "addintolerancebackend.php",
data: {
namegen: namegen, nametrade: nametrade, reaction: reaction,
onsetdate: onsetdate, entrydate: entrydate, status: status
}
})
.done( function( msg ) {alert( "Intolerance Added" + msg );
window.location = "intolerance.php";
})
.always(function(data, textStatus, jqXHR){
console.log(data, textStatus, jqXHR);
});
}
else
{ do another ajax call};