为什么这个jquery .post没有显示任何结果?

时间:2012-03-06 22:36:56

标签: jquery

我是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

1 个答案:

答案 0 :(得分:1)

我看到的问题:

  • 当没有错误时,您的PHP代码不会输出任何内容。我想你想要echo json_encode($arr);而不是return function($arr);;

  • 在JS方面,您的postToPage函数正在传递一个字符串(不是数组!)。然后,在函数内部,您尝试按索引(arr[0]arr[1])访问此字符串。这将为每个索引返回一个字符 - 可能不是你想要的。