为什么这个jquery ajax调用没有从我的PHP脚本返回数据?

我是jQuery的新手,并且无法在Firebug中调试这个ajax调用:

这是我的ajax电话:

var styndx = $('#studylist option:selected').val(); var studyname = $('#edit_field').val(); $.post("saveStudyName.php", {'type': 'update', 'studyname':studyname, 'styndx':styndx}, function(resultmsg) { $('#edit_field').val(''); $('#savebtn').attr('disabled',true); refresh_studynames(); }); 

这是函数refresh_studynames:

 function refresh_studynames() { $.ajax({ url: 'getStudyNames.php', data: "", dataType: 'json', error: function() { alert('Refresh of study names failed.'); }, success: function(data) { $data.each(data, function(val, sname) { $('#studylist').append( $('').val(val).html(sname) ) }); } }); } 

最后,这是php脚本getStudyNames.php($ dbname,$ dbconnect,$ hostname全部填充,$ dbconnect工作;后端数据库是Postgres, pg_fetch_all是PHP中的Postgres函数,它返回结果作为数组):

 $dbconnect = pg_pconnect("host=".$hostname." user=".$dbuser." dbname=".$dbname); if (!$dbconnect) { showerror(0,"Failed to connect to database",'saveStudyName',30,"username=".$dbuser.", dbname=".$dbname); exit; } $sql = "SELECT ST.studyindex,ST.studyabrv AS studyname FROM ibg_studies ST ORDER BY studyname"; $fetchresult = pg_exec($dbconnect, $sql); if ($fetchresult) { $array = pg_fetch_all($fetchresult); echo json_encode($array); } else { $msg = "Failure! SQL="+$sql; echo $msg; } 

任何帮助非常感谢….

这条线

 $('#studylist').append( $('').val(val).html(sname) ); 

看起来不对劲

我不太确定你可以尝试:

 var $studylist = $('#studylist').empty(); $data.each(data, function(i, record) { $studylist.append( $('').html(record.sname) ); });