ajax jquery php:w3school示例jquery ajax帖子没有显示建议

I tried the following code from w3schools. When I enter letters in a input txt box, suggestions should get displayed accordingly. However, nothing is getting displayed as suggestion. I'm not able to get the txt value with serialize. In gethint.php, since it is a post request, i changed the original $q=$_GET["q"]; to $q=$_POST["q"]. Can someone tell me on what i'm doing wrong? thank you.

post_example.html

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("input").keyup(function(){
    // txt=$("input").val();
    txt=$("input").serialize();
    $.post("gethint.php",txt,function(result){
      $("span").html(result);
    });
  });
});
</script>
</head>
<body>
<p>Start typing a name in the input field below:</p>
First name:

<input type="text" >
<p>Suggestions: <span></span></p>
</body>
</html>

gethint.php

<?php
 // Fill up array with names
 $a[]="Anna";
 $a[]="Brittany";
 $a[]="Cinderella";
 $a[]="Diana";
 $a[]="Eva";
 $a[]="Fiona";
 $a[]="Gunda";
 $a[]="Hege";
 $a[]="Inga";
 $a[]="Johanna";
 $a[]="Kitty";
 $a[]="Linda";
 $a[]="Nina";
 $a[]="Ophelia";
 $a[]="Petunia";
 $a[]="Amanda";
 $a[]="Raquel";
 $a[]="Cindy";
 $a[]="Doris";
 $a[]="Eve";
 $a[]="Evita";
 $a[]="Sunniva";
 $a[]="Tove";
 $a[]="Unni";
 $a[]="Violet";
 $a[]="Liza";
 $a[]="Elizabeth";
 $a[]="Ellen";
 $a[]="Wenche";
 $a[]="Vicky";

 //get the q parameter from URL
 $q=$_POST["q"];

 //lookup all hints from array if length of q>0
 if (strlen($q) > 0)
   {
   $hint="";
   for($i=0; $i<count($a); $i++)
     {
     if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
       {
       if ($hint=="")
         {
         $hint=$a[$i];
         }
       else
         {
         $hint=$hint." , ".$a[$i];
         }
       }
     }
   }

 // Set output to "no suggestion" if no hint were found
 // or to the correct values
 if ($hint == "")
   {
   $response="no suggestion";
   }
 else
   {
   $response=$hint;
   }

 //output the response
 echo $response;
 ?>

i think you are missed, the q in your line

$.post("gethint.php",txt,function(result){

should be

$.post("gethint.php", {q: txt},function(result){

or if you are using serialize then use the name of the input box like

<input type="text" name="q" >

The input doesn't have a name, so when you serialize it you get an empty string back.