Php 使用json将所选multiselect选项值设置为所选
我花了将近两天的时间寻找问题的解决方案,但没有找到任何答案。可能是我最近开始学习Ajax和jquery的东西,我错过了一些东西 注意:我的所有选择框都是选中的多个选择框&所有选项都是硬编码的 我有多个文本和选择框,我想在其中显示/选择来自mysqli json输出的数据,这是一个选择框更改事件之一(基本上,使用此用户可以复制/编辑所有文本和选择框的数据库中保存的现有详细信息) 我已经能够成功地使用下面的js代码为文本框执行此操作,我在过去两天学习了这些代码,以完成我的任务Php 使用json将所选multiselect选项值设置为所选,php,jquery,json,multi-select,jquery-chosen,Php,Jquery,Json,Multi Select,Jquery Chosen,我花了将近两天的时间寻找问题的解决方案,但没有找到任何答案。可能是我最近开始学习Ajax和jquery的东西,我错过了一些东西 注意:我的所有选择框都是选中的多个选择框&所有选项都是硬编码的 我有多个文本和选择框,我想在其中显示/选择来自mysqli json输出的数据,这是一个选择框更改事件之一(基本上,使用此用户可以复制/编辑所有文本和选择框的数据库中保存的现有详细信息) 我已经能够成功地使用下面的js代码为文本框执行此操作,我在过去两天学习了这些代码,以完成我的任务 $(document)
$(document).ready(function ()
{
$('#posted_jobs').on('change', function ()
{
var selectedValue = $(this).val();
$.ajax
({
url: 'Copyvalue.php',
type: 'POST',
data: 'filter_job_id=' + selectedValue,
success: function(response)
{
var obj = $.parseJSON(response);//parse JSON
console.log(response);
//alert(JSON.stringify(obj));
$("#Job_Type").val(["Normal"]); // have tried manually adding value to selectbox here but not working
$('#Locations').val(obj[0].Job_type); // have tried manually adding value to selectbox here but not working
$('#Job_Type').val(obj[0].Job_type);
$('#Keywords').val(obj[0].Keywords);
$('#designation').val(obj[0].Designation);
$('#Company_name').val(obj[0].Company_Name);
$('#Contact_Person').val(obj[0].Contact_person_name);
$('#Contact_person_no').val(obj[0].Contact_No);
$('#Job_name').val(obj[0].Job_name);
}
});
});
});
我尝试了n个来自堆栈溢出和其他web建议的选项。但无法使其在选择框中工作。请帮助我得到这项工作,如果可能的话,请告诉我从哪里可以学到这一点的好来源
我尝试过这样的选择
$("#Locations").val(["1, 2, 3, 4"]).prop("selected", false);
$("#Locations").val([1, 2]);
我的PHP脚本在Chrome控制台中的Json输出
[{"Job_id":"6","Employer_id":"2","creation_on":"2015-01-03 18:48:58","Keywords":"operation executive, manager operation, operation manager, executive operation","Job_type":"Normal","Designation":"Assistant Manager - Operation","Open_Positions":"4","Job_Description":"<p><strong>Good<\/strong> <em>Position<\/em><\/p>","Min_age":"23","Max_age":"34","Min_exp":"5","Max_exp":"12","Min_salary":"104","Max_salary":"109","Hide_Salary":"","Locations":"3, 4, 8, 45, 46","Industry":"10002, 10004","FA":"1002, 1003","Education":"4, 6, 9","Company_Name":"Aviva Life Insurance Company India Limited","About_Company":"<p><strong>Good<\/strong><em> Company<\/em><\/p>","Contact_person_name":"Balvinder Rayat","Contact_No":"9818906677","Refresh_type":"15","Response_type":"VC","Job_name":"Operation AM","Job_status":"Active"}]
[{“职务id”:“6”、“雇主id”:“2”、“创建日期”:“2015-01-03 18:48:58”、“关键词”:“运营主管、运营经理、运营经理、执行运营”、“职务类型”:“正常”、“指定”:“运营助理经理”、“空缺职位”:“4”、“职务描述”:“良好职位”、“最低年龄”:“23”、“最高年龄”:“34”、“最低经验”:“5”,“最高经验”:“12”,“最低工资”:“104”,“最高工资”:“109”,“隐藏工资”:“地点”:“3、4、8、45、46”,“行业”:“10002、10004”,“FA”:“1002、1003”,“教育”:“4、6、9”,“公司名称”:“英杰华人寿保险印度有限公司”,“关于公司”:“好公司”,“联系人姓名”:“Balvinder Rayat”,“联系人编号”:“9818906677”,“更新类型”:“响应类型”:“VC”,“作业名称”:“操作AM”,“作业状态”:“活动”}]
我的选择框
<select id="Locations" name='Locations[]' style='width:100%;' data-placeholder='Type or select
locations' multiple class='chosen-select-no-results'>
<option value="1">Bangalore</option>
<option value="2">Chennai</option>
<option value="3">Delhi</option>
<option value="4">Gurgaon</option>
<option value="5">Hyderabad</option>
<option value="6">Kolkata</option>
<option value="7">Mumbai / Navi Mumbai</option>
</select>
班加罗尔
钦奈
德里
古尔冈
海得拉巴
加尔各答
孟买/纳维孟买
我写了一个简单的例子
而不是那部分
if($(this).val() == 1)
{
$(this).prop('selected', true);
}
if($(this).val() == 2)
{
$(this).prop('selected', true);
}
检查数组中的值是..还是以何种类型存储数据。我搜索了更多信息,并获得了专门为(选择框)设置选择框值的解决方案(我猜) 基本上,代码中缺少触发器,这导致了所有问题。在使用json检索的最后一个值中添加触发器后,所有问题都得到了解决
$("#Job_Type").val(obj[0].Job_type).trigger('chosen:updated');
希望它也能帮助其他人
从这个链接找到答案
此外,对于多个选择框,如果您的值类似于[1,2,3,4],则可以使用以下方法获得结果:
var values = obj[0].Locations;
$.each(values.split(','), function(index, element)
{
$('#Locations').find('option[value="'+ element +'"]').attr('Selected', 'Selected');
$("#Locations").trigger('chosen:updated');
});
这会奏效的
$.each(objlist, function (index, value) {
$(".chosen-select option[value=" + value.id+ "]").attr("selected", "selected");
$(".chosen-select").trigger("chosen:updated");
});
在使用jQuery selected插件填充
并将一些选项设置为默认选中时,我也遇到了类似的问题。
我在代码中使用的方法是
- 从ajax调用获取JSON响应
- 使用JSON填充
元素 - 遍历
元素 - 使用“选定”属性更新它们(对于特定选项)
默认情况下,jQuery selected multiselect具有选定值
已经检查了数组中的数据类型和值。两者都是正确的。数据类型-Varchar和值也可以在Json输出中查看位置。此外,我尝试手动选择值(我在选择框详细信息中提到)但即使在使用您的问题解决方案之后,它们也不会被选中。我见过许多类似于您共享的JSFIDLE,其中选项显示已选中,但我的me无法使用。不知道为什么。我在这里实现了您的代码“success:function(response){var obj=$.parseJSON(response);//parse JSON console.log(response);//警报(JSON.stringify(obj));$(“#位置”).find(“选项”).each(函数(){if($(this.val()==1){$(this.prop('selected',true);}if($(this.val()==2){$(this.prop('selected',true)});“但是它不起作用&没有显示为selectedWesome,如果这是有效的解决方案,但可能需要一点描述来配合它:)你可以用attrabute Ex:Script:var listSelected=$('#donvicbb').attr('selected-value');$('#donvicbb').val(listSelected.split(','))绑定所选值;//设置值为数组$('#donvicbb')。触发器(“selected:updated”);//是必需的。