输入关键字&按Enter键从mysql获取结果

时间:2012-11-07 07:13:42

标签: php ajax

这是一个从组合框&中选择ID的想法。然后它会自动在html表单字段中打印数据,以便可以轻松编辑该字段。我到目前为止有2个文件 - index.html& showData.php。这是index.html文件:

<html>

<head>

    <script>

        function showData(str)
        {
            if (str=="")
            {
                document.getElementById("ajax-content").innerHTML="";
                return;
            } 

            // Code for IE7+, Firefox, Chrome, Opera, Safari
            if (window.XMLHttpRequest)
            {
                xmlhttp=new XMLHttpRequest();
            }

            // Code for IE6, IE5
            else
            {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("ajax-content").innerHTML=xmlhttp.responseText;
                }
            }

            xmlhttp.open("GET","showData.php?id="+str,true);

            xmlhttp.send();
        }

    </script>

</head>

<body>

<form>

<select name="register" onchange="showData(this.value)">
        <option value="">Select ID:</option>
        <option value="001">001</option>
        <option value="002">002</option>
        <option value="003">003</option>
    </select>   

</form>

<div id="ajax-content"></div>

</body>

这是我的showData.php文件:

<?php

    // Receive variable from URI
    $id=$_GET["id"];

    // Connect to your database
    $con = mysql_connect('localhost', 'root', '');
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }

    // Select your database
    mysql_select_db("test_01", $con);

    // Select all fields from your table
    $sql="SELECT * FROM staffdetails WHERE id = '".$id."'";

    $result = mysql_query($sql);

    while($row = mysql_fetch_array($result))
    {

        echo "Staff Name:" . "<input type='text' value='" . $row['name'] . "'>";
        echo "</br>";
        echo "Contact No.:" . "<input type='text' value='" . $row['number'] . "'>";
    }

    // Close the connection
    mysql_close($con);

?>

现在,我要做的是在表单字段中键入ID(而不是“从列表中选择”)并按Enter键(没有任何“提交”按钮< / strong>)在表单的字段上获取结果。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

onkeyup属性中提供此内容。

<input onkeyup="if (event.keyCode == 13) showData(this.value); return false;" />

解释

eventinput发生的当前事件。当keyup事件发生时,它有一个名为keyCode的属性,它返回按下的键的ASCII码。 Enter 键的代码为13。当您按 Enter 键时,甚至会发生这种情况。