0

MODNOTE:我使用 {} 标签来格式化代码,但它看起来很糟糕。我现在正在尝试修复它。

我的具体问题是:

  1. 我正在使用 javascript 变量设置标志。我这样做的方式是否合理?

  2. 我在本网站和其他地方对此进行了一些研究,并注意到标志可以“设置”(1)在数组中,(2)在隐藏的 HTML 元素中,(3)在 cookie 中。我没有看到关于使用 .data() 设置标志的内容。

  3. 是否有一种“优雅”、“标准”、“接受”的方式来设置一个标志以在一个页面上使用以在 if/else 语句中做出决定?在这种情况下,您如何设置标志?

我的代码如下:

  1. 在“准备好”后将标志设置为“未设置”。

  2. 单击按钮将新信息输入到表格中 - 标志设置为“添加”

  3. 单击现有数据表中的一行 - 标志设置为“更新”

  4. 如果标志为“添加”,则使用 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};
4

0 回答 0