Доброе утро всем. У меня есть страница, которая возвращает jQuery .post на страницу PHP, где выполняется запрос в отношении MySQL db, и результаты возвращаются в формате JSON. В зависимости от результата запроса может появляться несколько строк JSON. Предполагается, что одно «поле» вывода JSON (appparenthcacyrsYear) используется для выбора всех возвращаемых значений в моем мультиселекте, но я не могу заставить его работать.PHP/JQUERY: 1 Query, N JSON Strings, Loop for Multiselect
Позвольте мне показать некоторый вывод 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>
EDIT: предшествующий код 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":"[email protected]","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":"[email protected]","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");
}
Мог бы один из вас добрых людей там вести меня к правильному ответу?
спасибо !!
'я <= obj3.length;' 'Где obj3'? Ваш вопрос звучит так, как jquery '.post' является неотъемлемой частью этой проблемы, но вы не показываете код для этого. –