我是jQuery和ajax的新手,所以我试着让这个简单的例子起作用;但到目前为止,使用.post,php和数据库调用都没有运气......
这是我的jQuery代码:
function fetchgenotype() {
var mndx = document.EditGenotype.marker.options[document.EditGenotype.marker.selectedIndex].value;
var sndx = document.EditGenotype.labid.options[document.EditGenotype.labid.selectedIndex].value;
$.post("fetchAlleles.php", {mndx: mndx, sndx: sndx},
function(result) {
$('#results').append(result);
postToPage('#results');
});
}
function postToPage(arr) {
var allele1 = arr[0];
var allele2 = arr[1];
$('#allele1').text(allele1);
$('#allele2').text(allele2);
}
以下是fetchAlleles.php的基本部分:
$mndx = $_POST['mndx'];
$sndx = $_POST['sndx'];
// query the database.
$dbconnect = pg_pconnect("host=".$hostname." user=".$dbuser." dbname=".$dbname);
if (!$dbconnect) {
showerror(0,"Failed to connect to database",'fetchAlleles',16,"username=".$dbuser.", dbname=".$dbname);
exit;
}
$sql = "SELECT allele1, allele2 FROM genotypes WHERE markers_id=".$mndx." AND gsamples_id=".$sndx;
$fetchresult = pg_exec($dbconnect, $sql);
if ($fetchresult) {
$arr = pg_fetch_array($fetchresult, 0, PGSQL_NUM);
} else {
echo "(25) Failed to retrieve results.<BR>SQL: ".$sql."</br>";
}
return function($arr);
我现在正在调用我的jQuery .post函数,但屏幕上没有任何反应,并且我的javascript错误控制台中没有任何内容显示。 关于什么是错的任何建议?
TIA, --rixter
答案 0 :(得分:1)
我看到的问题:
当没有错误时,您的PHP代码不会输出任何内容。我想你想要echo json_encode($arr);
而不是return function($arr);
;
在JS方面,您的postToPage
函数正在传递一个字符串(不是数组!)。然后,在函数内部,您尝试按索引(arr[0]
,arr[1]
)访问此字符串。这将为每个索引返回一个字符 - 可能不是你想要的。