Javascript 返回中的If-else语句&引用;陈述

Javascript 返回中的If-else语句&引用;陈述,javascript,html,sql,ajax,datatables,Javascript,Html,Sql,Ajax,Datatables,这可能吗?如果列approvedby不为空,我试图隐藏Approve按钮。这来自服务器端数据表。我的问题是我找不到使用if-else的方法,因为我正在使用return”“ 这是剧本 $(function() { $('#example').DataTable( { dom: "Bfrtip", ajax: { url: "earnings_amendment_account_table.php", type:

这可能吗?如果列
approvedby
不为空,我试图隐藏Approve按钮。这来自服务器端数据表。我的问题是我找不到使用if-else的方法,因为我正在使用
return”“

这是剧本

$(function() {
    $('#example').DataTable( {
        dom: "Bfrtip",
        ajax: {
            url: "earnings_amendment_account_table.php",
            type: "POST"
        },
        serverSide: true,
        columns: [
            { data: "accountcode" },
            { data: "accounttitle" },
            { data: "accounttype" },
            { data: "approvedby" },
            { "data": "accountcode", "name": " ", "autoWidth": true, "render": function (data, type, full, meta) {
return "<button class='btn btn-success btn-sm btn-flat edit' data-id='"+full.accountcode+"'><i class='fa fa-edit'></i> Edit</button> <button class='btn btn-danger btn-sm btn-flat delete' data-id='"+full.accountcode+"'><i class='fa fa-trash'></i> Delete</button> if (empty("+full.approvedby+")) { <button class='btn btn-warning btn-sm approve btn-flat' data-id='"+full.accountcode+"'><i class='fa fa-check-square-o'></i> Approve</button>}";}
                        }
        ],
        select: false,
        buttons: []
    } );
} );
$(函数(){
$('#示例')。数据表({
dom:“Bfrtip”,
阿贾克斯:{
url:“收入\修订\账户\表格.php”,
类型:“职位”
},
服务器端:是的,
栏目:[
{数据:“会计代码”},
{数据:“accounttitle”},
{数据:“accounttype”},
{数据:“批准人”},
{“数据”:“accountcode”、“name”:“autoWidth”:true,“render”:函数(数据、类型、完整、元){
返回“编辑删除如果(空(“+full.approvedby+”){Approve}”;}
}
],
选择:false,
按钮:[]
} );
} );
这就是结果。我似乎找不到方法让
if-else
return”“
内部工作


我会使用条件运算符检查
approvedby
属性-如果不为null,请使用包含按钮的字符串,否则使用空字符串。您还可以使用模板文字来大大提高可读性:

$('#example').DataTable({
  dom: "Bfrtip",
  ajax: {
    url: "earnings_amendment_account_table.php",
    type: "POST"
  },
  serverSide: true,
  columns: [{
      data: "accountcode"
    },
    {
      data: "accounttitle"
    },
    {
      data: "accounttype"
    },
    {
      data: "approvedby"
    },
    {
      "data": "accountcode",
      "name": " ",
      "autoWidth": true,
      "render": function(data, type, { accountcode, approvedby }, meta) {
        return `
          <button class='btn btn-success btn-sm btn-flat edit' data-id='${accountcode}'>
            <i class='fa fa-edit'></i>
            Edit
          </button>
          <button class='btn btn-danger btn-sm btn-flat delete' data-id='${accountcode}'>
            <i class='fa fa-trash'></i>
            Delete
          </button>
          ${approvedby !== null
            ? `<button class='btn btn-warning btn-sm approve btn-flat' data-id='${accountcode}'>
                 <i class='fa fa-check-square-o'></i>
                 Approve
               </button>}`
            : ''
          }
         `;
      }
    }
  ],
  select: false,
  buttons: []
});

好的,您正在字符串中传递
if
语句,这将告诉您的浏览器

  • 将此字符串作为JavaScript读取
  • 把它读成字符串
  • 浏览器不会将其解释为代码

    不如试试这样:

    $(函数(){
    $('#示例')。数据表({
    dom:“Bfrtip”,
    阿贾克斯:{
    url:“收入\修订\账户\表格.php”,
    类型:“职位”
    },
    服务器端:是的,
    栏目:[
    {数据:“会计代码”},
    {数据:“accounttitle”},
    {数据:“accounttype”},
    {数据:“批准人”},
    {“数据”:“accountcode”、“name”:“autoWidth”:true,“render”:函数(数据、类型、完整、元){
    返回`
    编辑
    删除
    ${(full.approvedby='')`Approve`:''}`;
    }
    ],
    选择:false,
    按钮:[]
    } );
    });
    试试这个

    $(函数(){
    $('#示例')。数据表({
    dom:“Bfrtip”,
    阿贾克斯:{
    url:“收入\修订\账户\表格.php”,
    类型:“职位”
    },
    服务器端:是的,
    栏目:[
    {数据:“会计代码”},
    {数据:“accounttitle”},
    {数据:“accounttype”},
    {数据:“批准人”},
    { 
    数据:“会计代码”,
    姓名:“,
    自动宽度:正确,
    呈现:函数(数据、类型、完整、元){
    让html=“编辑”;
    html+=“删除”;
    html+=“删除”;
    如果(!完全批准人)
    html+=“批准”;
    返回html;
    }
    }
    ],
    选择:false,
    按钮:[]
    } );
    } );
    
    注意,我删除了if语句中使用的empty()函数

    它不起作用的原因是您将if语句作为字符串编写,因此它没有作为javascript代码进行处理

    下面是一个关于如何用javascript编写内联if语句的示例

    return'Hello my name is'+(name==='Miroslav'?name:'Anonymous')+'我刚刚写了一个内联if语句';
    
    如果它是空的,那么它到底是什么类型的
    满的。approvedby
    是空的?它是一个空字符串,还是一个没有项目的数组,或者类似的东西?@CertainPerformance,即使它标记为“null”也可以,只有当数据库中
    满的行。approvedby
    为null时,Approved按钮才会显示。这对我不起作用。我试图找出哪一个是问题所在,我想这是我的引用。我在这一个中有一个引用问题。我对语法进行了三次检查,并将其插入语法检查器,我确信语法是有效的-到底是什么问题?我正在检查它。我想我对脚本中的其他代码有问题。这是可行的,但我做到了我不明白
    html+=”
    是如何工作的。我会研究这个,因为这将是我整个项目的基本结构。谢谢!@pjustindaryll那么这
    html+=”
    does是在已经包含字符串的
    html
    变量中附加一个字符串。下面是一个你可以阅读以更好地理解的字符串。哦,我明白了,它类似于变量持有者。我现在明白了。谢谢!
    $('#example').DataTable({
      dom: "Bfrtip",
      ajax: {
        url: "earnings_amendment_account_table.php",
        type: "POST"
      },
      serverSide: true,
      columns: [{
          data: "accountcode"
        },
        {
          data: "accounttitle"
        },
        {
          data: "accounttype"
        },
        {
          data: "approvedby"
        },
        {
          "data": "accountcode",
          "name": " ",
          "autoWidth": true,
          "render": function(data, type, { accountcode, approvedby }, meta) {
            let str = `
              <button class='btn btn-success btn-sm btn-flat edit' data-id='${accountcode}'>
                <i class='fa fa-edit'></i>
                Edit
              </button>
              <button class='btn btn-danger btn-sm btn-flat delete' data-id='${accountcode}'>
                <i class='fa fa-trash'></i>
                Delete
              </button>
            `;
            if (approvedby !== null) {
              str += `
                <button class='btn btn-warning btn-sm approve btn-flat' data-id='${accountcode}'>
                  <i class='fa fa-check-square-o'></i>
                  Approve
                </button>}`;
            }
            return str;
          }
        }
      ],
      select: false,
      buttons: []
    });