Reputation: 477
I am trying to display the results of a database query on a web page. I'm using the JQUERY script below to get the data as a JSON array via a php script.
For some reason I can't figure out, the web page. is blank. Note the alert shows the data is being passed to the $.each loop correctly.
Can anyone tell me what I'm doing wrong??
Thanks
Chris
function projectData() {
var data = '';
$.ajax(
{
url:"projectdata.php",
type: "POST",
dataType: 'JSON',
cache: false,
success:function(data)
{
$( "#projectList" ).insertAfter('<tbody>' +
$.each(data, function(indx, value)
{
'<tr><td>' + data[indx].project_id + '</td>' +
'<td>' + data[indx].dept + '</td>' +
'<td>' + value.projName + '</td>' +
'<td>' + data[indx].notes + '</td>' +
'<td>' + data[indx].dates + '</td>' +
'<td>' + data[indx].status + '</td>' +
alert("ID: " + value.project_id + " " + "DEPT: " + data[indx].dept);
} //end function
) //end each
) //end After
} //end success
}); //end ajax
} //end projectdata
Existing Projects:
< table id="projectList">
< thead>
< tr class="success">
< th class="span1">PROJECT ID < /th>
< th class="span2">SCHOOL / DEPT < /th>
< th class="span1">PROJECT < /th>
< th class="span3">DESCRIPTION / PROJECT NOTES < /th>
< th class="span1">APPROX DATES < /th>
< th class="span1">STATUS < /th>
< th class="span1">USER</th> < /tr>
< /thead>
< tbody>
< !-- RESULTS FROM JQUERY/PHP GOES HERE -->
< /tbody>
< /table>
Upvotes: 0
Views: 133
Reputation: 12683
Change your insertAfter to append:
$( "#projectList" ).append('<tbody>' +
'<tr><td>' + data[indx].project_id + '</td>' +
'<td>' + data[indx].dept + '</td>' +
'<td>' + value.projName + '</td>' +
'<td>' + data[indx].notes + '</td>' +
'<td>' + data[indx].dates + '</td>' +
'<td>' + data[indx].status + '</td>'
);
And what is the alert doing there? Didnt get id.
Upvotes: 0
Reputation: 1320
'<tbody>' + $.each(data, function(indx, value)
In this code you concatinate string with function
Try to create html first with $.each and then put it into tbody
var result = "";
$.each(data, function(i, val){
result += "<tr><td>" + val.project_id + "</td></tr>";
})
$( "#projectList tbody" ).html(result);
Upvotes: 0
Reputation: 16544
You have a syntax error
$( "#projectList" ).insertAfter('<tbody>' +
$.each(data, function(indx, value)
{
'<tr><td>' + data[indx].project_id + '</td>' +
This doesn't make any sense
Maybe this is what you wanted to do
var result = "";
$.each(data, function(indx, value)
{
result += '<tr><td>' + data[indx].project_id + '</td>' +
'<td>' + data[indx].dept + '</td>' +
'<td>' + value.projName + '</td>' +
'<td>' + data[indx].notes + '</td>' +
'<td>' + data[indx].dates + '</td>' +
'<td>' + data[indx].status + '</td></tr>';
}
$("#projectlist").insertAfter('<tbody>' + result + '</tbody>');
Upvotes: 3