如何在ajax调用中使用jquery中的三元运算符?

问题描述 投票:0回答:1

我正在使用核心PHP,jQuery和MySql。我的代码中有2个依赖的下拉列表。 company list的第一个下拉列表来自数据库,直接在同一页面上查询。

对于特定employee listcompany的第二次下拉,我使用ajax从数据库获取数据。

var lastSelectedEmpId = $('#hiddeniid').val();
$.ajax({
  method: "GET",
  dataType: 'json',
  url:"getdata.php?id="+emp_id,
  success:function (response){
    $(".bodytable").empty();
    $.each(response, function( index, value ) {
      $(".class").append("<option value="'+value.id+','+value.emp_type+'">" + value.emp_name + </option>'");
    });
  },
});

正如您可以在值"'+value.id+','+value.emp_type+'"中看到上面的代码

_GET['curent_id']我正在为所有用户选择所有数据。

我的添加和更新代码在同一页面上。所以我只有一个针对employee_list.的ajax调用

正如您在_GET['curent_id']上看到的上述代码,我正在使用id_emptype的员工获取所有数据。

我希望这个id_emptypeto在ajax调用中用作选定选项。为此,我想在jQuery中使用三元运算符,但它不适合我。

我有一个隐藏的领域与我当前的id_emptype。在变量lastSelectedEmpId

现在我正在执行类似下面的代码来将current id_emptype作为选定的值onload页面,但它不起作用:

$(".class").append<option value="' +value.id+','+value.emp_type+ '"' +
  (+value.id+','+value.emp_type+ === lastSelectedEmpId ? 'selected="selected"' : '') +
  '>' + value.emp_name + '</option>;
jquery mysql ajax drop-down-menu ternary-operator
1个回答
0
投票

将某些JS逻辑与字符串连接时,必须用括号括起来。

并且小心放置+标志和括号。你不能把它们放在错误的地方或丢失。

试试下面的.append(),在那里我用变量填充变量以使演示工作:

var lastSelectedEmpId = "1,type";

var value={
  id:1,
  emp_type:"type",
  emp_name:"John Doh"
}

$(".class").append('<option value="' +value.id+','+value.emp_type+ '"' + 
                   ((value.id+','+value.emp_type === lastSelectedEmpId) ? 'selected="selected"' : '') +
                   '>' + value.emp_name + '</option>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select class="class">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>

=== 而'selected="selected"'可能只是'selected'。无论如何,该属性是真/假。但是,如果存在,浏览器会将其解释为真实。

你甚至可以尝试'selected="bullshit"'它会工作......;)

© www.soinside.com 2019 - 2024. All rights reserved.