没有通过ajax获得searchinput

时间:2011-05-22 07:31:12

标签: php ajax

我有一个搜索字段,它引用一个函数来查看我的数据库并获取我需要的人。这对PHP工作得很好,但是当我尝试用ajax做同样的事情时,它失败了。

搜索输入永远不会发布。

这是代码。我希望有人知道为什么。感谢。

Doctor.class.php

public function searchPatients($p_sSearch, $p_iUserid) {
    include("Connection.php"); //open db

    try
    {
        $sql = "SELECT * FROM tblUsers 
                WHERE UserLastname = '".$p_sSearch."'
                and fk_DoctorId = ".$p_iUserid.";";
        $rResult = mysqli_query($link, $sql);
        return $rResult;
    }
    catch(Exception $e)
    {
        // no connection database
        $feedback = $e->getMessage();
    }
    mysqli_close($link);
}

AJAX / save.php

include("../classes/Doctor.class.php");

$oDoctor = new Doctor();
    try
    {
    $oDoctor->Search = $_POST['searchinput'];

        $oDoctor->searchPatients($_POST['searchinput'], $_POST['userid']);
    }
    catch (Exception $e)
    {
        $feedback = $e->getMessage();
    }

doctorindex.php

$("#search_overview").hide();
var searchinput = $("#searchinput").val();
$("#searchbutton").live("click", function() {       
    $.post("ajax/save.php", {searchinput: searchinput, 
                            userid: <?php echo $_SESSION['id']; ?>},
            function(data) 
            { 
                $("#patients_overview").hide();
                $("#search_overview").fadeIn();
            });
    return false;
});

1 个答案:

答案 0 :(得分:1)

看来您在页面加载时获取搜索输入值(当它为空时),而不是在点击搜索按钮后(当您在其中键入内容时)。

您可以尝试:

  • 直接在.post{searchinput:$("#searchinput").val()}
  • 中获取搜索输入值
  • var searchinput移动到点击事件的回调函数