我正在使用核心 PHP、jQuery 和 MySql。我的代码中有 2 个依赖的下拉菜单。 公司列表
的第一个下拉列表直接来自数据库,并在同一页面上进行查询。
对于特定公司
的员工列表
的第二个下拉列表,我使用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['current_id']
上,我正在获取选定用户的所有数据。
我的添加和更新代码位于同一页面上。所以我只有一个ajax调用employee_list。
正如您在 _GET['current_id']
上看到的代码,我正在获取员工 id_emptype
的所有数据。
我希望这个id_emptype
在ajax调用中用作选定选项。为此,我想在 jQuery 中使用三元运算符,但它不起作用
对我来说。
我当前的 id_emptype
有一个隐藏字段。在变量 lastSelectedEmpId
中。
现在我正在执行类似下面的代码来获取当前 id_emptype
作为加载页面上的选定值,但它不起作用:
$(".class").append<option value="' +value.id+','+value.emp_type+ '"' +
(+value.id+','+value.emp_type+ === lastSelectedEmpId ? 'selected="selected"' : '') +
'>' + value.emp_name + '</option>;
最佳答案
当将一些 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'
。无论如何,该属性是真/假。但只要存在,浏览器就会将其解释为 true。
您甚至可以尝试'selected="bullshit"'
,它会起作用...;)
关于jquery - 如何在ajax调用中使用jquery中的三元运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799584/