我的应用程序中有一个非常基本的设置。
我生成一个带有编辑按钮的表。单击“编辑”按钮后,将弹出一个模式对话框,我将使用数据库响应自动填充该对话框。
单击按钮时运行的功能包含在外部文件中;
function GetUserDetails(User_ID) {
$.post("includes/admin/readUserDetails.php", {
User_ID: User_ID
},
function (data, status) {
var user = JSON.parse(data);
$("#update_Actions").val(user.Actions);
$("#update_Actions_Selected").val(user.Actions_Selected);
});
// Open modal popup
$("#update_user_modal").modal("show");
}
要返回的字段包含一个逗号分隔的列表,该列表由数据库查询生成。数据库查询json_encodes响应并将其强制为对象。
所有响应看起来不错。我看到了我期望的数据。
{"Actions":1, "Actions_Selected":"1,2,3"}
除了两个区域,我的模态基本上是空的,以显示与上面包含的原始JS代码段匹配的HTML ID的返回数据。
这里的问题是.val似乎可以正确获取Actions值,并且可以毫无问题地进行填充。对于Actions_Selected,我什么也没得到。
最终目的是使用Actions_Selected字符串中的值自动标记引导多重选择-这是我可以做的部分,但是我真的很努力地仅将1,2,3打印到控制台。这是一个字符串(数据库中也是varchar),我尝试过的所有其他字符串条目都可以正常工作。
如果我将数据库中的1,2,3更改为单个条目,则一切正常。它可以是数字,字母或单词
为什么.val
不仅返回字符串给我?看来任何带逗号的字符串都被解释为一个数组,但是.val返回一个空数组。
我敢肯定这很简单,但现在我已经说不通了。