大家早上好。我有一个页面,它将jquery .post返回到PHP页面,其中对MySQL数据库执行查询,结果以JSON格式返回。根据查询输出,可能会返回多个JSON字符串。 JSON输出的一个“字段”(appparenthcacyrsYear)应该用于选择我的多选中的所有返回值,但我无法使其工作。
让我展示一些JSON输出和我到目前为止所尝试的内容(为了SO的目的而缩短)...
Multiselect(PHP):
<select name="appParentHCACYrs[]" id="ParentHCACYrs" multiple="multiple" size="3">
<?php
$getHCACyrs = "select * from tblAppLookup where applookupCategoy = 'HCACyrs' order by applookupSortID;";
$getHCACyrsresults = $mysqli->query($getHCACyrs);
while ( $row = $getHCACyrsresults->fetch_object() ) {
$id = $row->applookupItemID;
$name = $row->applookupItemDesc;
print "<option value=\"$id\">$name</option>\n";
}
?>
</select>
Multiselect(HTML):
<select name="appParentHCACYrs[]" id="ParentHCACYrs" multiple="multiple" size="3">
<option value="1">Year 1</option>
<option value="2">Year 2</option>
<option value="3">Year 3</option>
</select>
编辑:前面的jquery代码,根据Patirck的评论:
function ProcessForm(qnum, answer) {
$("#ContEnrollSelect").html("");
$("#ContEnrollSelect").dialog("close");
if (qnum == 1) {
$.post("/chairs-dev/jqf/addapp_processajax.php", {PID: answer}, function (data) {
...
addapp_processajax.php
if(isset($_POST['QNUM'])) {
$qnum = $_POST['QNUM'];
if ($qnum == 1) {
$getretquery = "SELECT a.parentID, concat(a.parentFName, ' ', a.parentLName) as ParentName, a.parentDOB, a.parentPriPhone from tblParents a";
} elseif ($qnum == 2) {
$getretquery = "SELECT a.parentID, concat(a.parentFName, ' ', a.parentLName) as ParentName, b.childID, concat(b.childFName, ' ', b.childLName) as ChildName, a.parentDOB, b.childDOB, a.parentPriPhone from tblParents a, tblChildren b where a.parentID = b.childParentID";
} elseif ($qnum == 3) {
$getretquery = "SELECT a.childID, concat(a.childFName, ' ', a.childLName) as ChildName, a.childDOB from tblChildren a";
}
$getretqueryresults = $mysqli->query($getretquery);
while ($row1 = $getretqueryresults->fetch_object()) {
$rows1[] = $row1;
}
$ret1 = json_encode($rows1);
print json_encode($rows1);
}
结束编辑
JSON输出示例:
[{"appID":"2","appParentFName":"Anita","appParentLName":"Smith","appParentGender":"1","appParentDOB":"1976-04-21","appParentAddr1":"123 Main St","appParentAddr2":"","appParentCity":"Anytown","appParentZip":"12345","appParentPriPhone":"813-555-1212","appParentPriPhoneType":"2","appParentAltPhone":"","appParentAltPhoneType":"0","appParentTextable":"1","appParentEmail":"asmith@mymail.com","appParentPriLang":"34","appparentaltlangsLangID":"130","appParentHispYN":"1","appParentHispNationality":"18","appParentRace":"2","appParentHLEC":"7","appParentLastGradeComp":"12","appParentPriSecEducStatus":"1","appParentCollegeEnrolled":"0","appParentHigherEducTrainingStatus":"0","appParentRelToChild":"1","appParentLivesWith":"2","appParentMaritalStatus":"1","appParentSpouseName":"Bob","appParentNumChildrenEnrolled":"2","appparenthcacyrsYear":"1","appparenthcaclangsLang":"3","appParentOccupation":"1","appParentEmploymentStatus":"2"},
{"appID":"2","appParentFName":"Anita","appParentLName":"Smith","appParentGender":"1","appParentDOB":"1976-04-21","appParentAddr1":"123 Main St","appParentAddr2":"","appParentCity":"Anytown","appParentZip":"12345","appParentPriPhone":"813-555-1212","appParentPriPhoneType":"2","appParentAltPhone":"","appParentAltPhoneType":"0","appParentTextable":"1","appParentEmail":"asmith@mymail.com","appParentPriLang":"34","appparentaltlangsLangID":"130","appParentHispYN":"1","appParentHispNationality":"18","appParentRace":"2","appParentHLEC":"7","appParentLastGradeComp":"12","appParentPriSecEducStatus":"1","appParentCollegeEnrolled":"0","appParentHigherEducTrainingStatus":"0","appParentRelToChild":"1","appParentLivesWith":"2","appParentMaritalStatus":"1","appParentSpouseName":"Bob","appParentNumChildrenEnrolled":"2","appparenthcacyrsYear":"3","appparenthcaclangsLang":"3","appParentOccupation":"1","appParentEmploymentStatus":"2"}]
代码失败#1:
var oPHCACYrs = new Array();
for (i = 0; i <= obj3.length; i++) {
if (!(typeof obj3[i].appparenthcacyrsYear === 'undefined')) {
oPHCACYrs.push(obj3[i].appparenthcacyrsYear);
}
}
...
$('#ParentHCACYrs').val(vals);
代码失败#2:
var oPHCACYrs = new Array();
for (b = 0; b <= obj3.length; b++) {
if (!(typeof obj3[b].appparenthcacyrsYear === 'undefined')) {
oPHCACYrs[oPHCACYrs.length] = obj3[b].appparenthcacyrsYear;
}
}
...
for (e = 0; e <= oPHCACYrs.length; e++) {
$("#ParentHCACYrs option[value='" + oPHCACYrs[e] + "']").attr("selected", 1);
$("#ParentHCACYrs").multiselect("refresh");
}
你们其中一个善良的人能指导我找到正确的答案吗?
谢谢!
答案 0 :(得分:0)
使用$.each
进行集合循环。检查 JSFIDDLE
<select name="appParentHCACYrs[]" id="ParentHCACYrs" multiple="multiple" size="3">
<option value="1">Year 1</option>
<option value="2">Year 2</option>
<option value="3">Year 3</option>
</select>
和jQuery
var jsonArray = [{"appID": "2", "appParentFName": "Anita", "appParentLName": "Smith", "appParentGender": "1", "appParentDOB": "1976-04-21", "appParentAddr1": "123 Main St", "appParentAddr2": "", "appParentCity": "Anytown", "appParentZip": "12345", "appParentPriPhone": "813-555-1212", "appParentPriPhoneType": "2", "appParentAltPhone": "", "appParentAltPhoneType": "0", "appParentTextable": "1", "appParentEmail": "asmith@mymail.com", "appParentPriLang": "34", "appparentaltlangsLangID": "130", "appParentHispYN": "1", "appParentHispNationality": "18", "appParentRace": "2", "appParentHLEC": "7", "appParentLastGradeComp": "12", "appParentPriSecEducStatus": "1", "appParentCollegeEnrolled": "0", "appParentHigherEducTrainingStatus": "0", "appParentRelToChild": "1", "appParentLivesWith": "2", "appParentMaritalStatus": "1", "appParentSpouseName": "Bob", "appParentNumChildrenEnrolled": "2", "appparenthcacyrsYear": "1", "appparenthcaclangsLang": "3", "appParentOccupation": "1", "appParentEmploymentStatus": "2"},
{"appID": "2", "appParentFName": "Anita", "appParentLName": "Smith", "appParentGender": "1", "appParentDOB": "1976-04-21", "appParentAddr1": "123 Main St", "appParentAddr2": "", "appParentCity": "Anytown", "appParentZip": "12345", "appParentPriPhone": "813-555-1212", "appParentPriPhoneType": "2", "appParentAltPhone": "", "appParentAltPhoneType": "0", "appParentTextable": "1", "appParentEmail": "asmith@mymail.com", "appParentPriLang": "34", "appparentaltlangsLangID": "130", "appParentHispYN": "1", "appParentHispNationality": "18", "appParentRace": "2", "appParentHLEC": "7", "appParentLastGradeComp": "12", "appParentPriSecEducStatus": "1", "appParentCollegeEnrolled": "0", "appParentHigherEducTrainingStatus": "0", "appParentRelToChild": "1", "appParentLivesWith": "2", "appParentMaritalStatus": "1", "appParentSpouseName": "Bob", "appParentNumChildrenEnrolled": "2", "appparenthcacyrsYear": "3", "appparenthcaclangsLang": "3", "appParentOccupation": "1", "appParentEmploymentStatus": "2"}];
$.each(jsonArray, function(idx, obj) {
$("#ParentHCACYrs option[value='" + obj.appparenthcacyrsYear + "']").attr("selected", 1);
});