各位我仍然有一个关于附加到数组的问题然后把它放在json中让我在ajax中使用它是我的代码。
global $school_id;
$get_section = "SELECT *
FROM section a
LEFT JOIN advisory_sections b ON(a.section_id = b.section_id)
LEFT JOIN school_faculty c ON (b.faculty_id = c.faculty_id)
WHERE a.school_id = '$school_id' ORDER BY section_level ASC";
$result=mysql_query($get_section)or die(mysql_error());
$i=0;
$data=array();
while ($row = mysql_fetch_array($result))
{
$data[] = array(
'sec_id'=>$row['section_id'],
'sec_name'=>$row['section_name'],
'sec_dept'=>$row['section_department'],
'sec_lvl'=>$row['section_level'],
'advisory_id'=>$row['advisory_id'],
'first_name'=>$row['f_firstname'],
'last_name'=>$row['f_lastname'],
'middle_name'=>$row['f_middlename'],
'advisor_id'=>$row['faculty_id'],
);
$get_subjects = "SELECT subject_name
FROM subjects
WHERE level = '".$row['section_level']."' ";
$result_get_subjects =mysql_query($get_subjects)or die(mysql_error());
$subjects_count = mysql_num_rows($result_get_subjects);
$check_archive_subjects = " SELECT b.subject_name
FROM registrar_grade_archive a
LEFT JOIN subjects b ON(a.subject_id=b.subject_id)
WHERE a.advisor_faculty_id = '".$row['faculty_id']."'
GROUP BY b.subject_name ASC
" ;
$query_checking =mysql_query($check_archive_subjects)or die(mysql_error());
$subjects_count_sent = mysql_num_rows($query_checking);
if($subjects_count_sent == $subjects_count){
array_push($data, 'status:complete');
}else{
array_push($data, 'status:Incomplete');
}
$i++;
}
echo json_encode($data);
AJAX:
function get_sections_status(){
$.ajax({
url: 'teacher_class_get.php',
dataType: 'json',
type: 'POST', //u missed this line.
data:{'func_num':'6'},
success: function (data){
$.each(data, function(i, item) {
html = "<tr>";
html += "<td style='width:10%;'><input type='radio' name='section_id' rel='"+data[i].advisory_id+"' value='"+data[i].sec_id+"'></td>";
html += "<td style='width:25%;'><label>"+data[i].status+"</label></td>";
html += "<td style='width:15%;'><label id='year_level' rel='"+data[i].sec_lvl+"''>"+data[i].sec_lvl+"</label></td>";
html += "<td style='width:20%;'><label>"+data[i].sec_name+"</label></td>";
html += "<td style='width:30%;'><label id='faculty_id' rel='"+data[i].advisor_id+"'>"+data[i].last_name+", "+data[i].first_name+" "+data[i].middle_name+"</label></td>";
html += "</tr>";
$('#table-sections-content').append(html);
});
}
});
}
get_sections_status();
我得到了这种回应:
[{"sec_id":"36","sec_name":"black","sec_dept":"highschool","sec_lvl":"firstyear","advisory_id":"60","first_name":"asdf","last_name":"asdf","middle_name":"asdf","advisor_id":"1"},"status:Incomplete",{"sec_id":"32","sec_name":"level-up","sec_dept":"highschool","sec_lvl":"firstyear","advisory_id":"53","first_name":"asdf","last_name":"asdf","middle_name":"asdf","advisor_id":"1"},"status:Incomplete"
您可以看到状态不在数组中。这就是为什么我得到这种出局。
在我的输出我有一个状态但有其他未定义值的新行,其他有值但状态不确定..请帮助伙计们...提前感谢
答案 0 :(得分:1)
您需要在数据结构的不同级别添加状态。
试试这个(见代码中的评论):
....
while ($row = mysql_fetch_array($result))
{
//Create a new item to add to $data later
$item = array(
'sec_id'=>$row['section_id'],
'sec_name'=>$row['section_name'],
'sec_dept'=>$row['section_department']
....
//Add status to $item, rather than $data
//I don't think array_push will give you what you want here
if($subjects_count_sent == $subjects_count){
$item['status']='complete';
}else{
$item['status']='incomplete';
}
//Add the new item after status has been set
$data[]=$item;
$i++;
}
....
是的,你应该看看切换到mysqli或PDO。