邮政编码验证

时间:2014-06-06 17:09:35

标签: javascript php html ajax

我想完成以下任务 1.如果我的数据库中存在邮政编码,则打印符合交付条件 2.否则不符合交付条件

我编写的代码如下: HTML

    <form>
        Pincode: <input autocomplete="off" type="text" maxlength="6" name="pincode" class="pincode" id="pin_code" placeholder="Enter Pincode" onkeypress='validate(event)'/><br>
               <span class="check"  ></span> <br/><br/>

javascript和ajax

<script type="text/javascript">
$(function()
{
  $('.pincode').keyup(function()
  {
  var checkcode=$(this).val();

  if(checkcode){
  $('.check').show();
  $('.check').fadeIn(400).html('<img src="image/ajax-loading.gif" /> ');

    var Str="pin=" + checkcode;
  $.ajax({
          type: "POST",
          url: "available.php",
          data: Str,
          cache: false,
          success: function(result){
               if(result==''){
                       $('.check').html('<img src="image/error.png" /> This pincode is not valid');
                       $(".check").removeClass("red");
                       $('.check').addClass("green");
                       $(".pincode").removeClass("yellow");
                       $(".pincode").addClass("white");
               }else{
                       $('.check').html('<img src="image/accept.png" /> This pincode is valid');
                       $(".check").removeClass("green");
                       $('.check').addClass("red")
                       $(".pincode").removeClass("white");
                       $(".pincode").addClass("yellow");
               }
          }
      });
   }else{
       $('.check').html('');

   }
  });



});
</script>

available.php的php代码

<?php

$mysql_db_hostname = "localhost";
$mysql_db_user = "healthmate";
$mysql_db_password = "healthmate";
$mysql_db_database = "test";

$con = mysql_connect($mysql_db_hostname, $mysql_db_user, $mysql_db_password) or die("Could not connect database");
mysql_select_db($mysql_db_database, $con) or die("Could not select database");

if(isset($_POST['pincode']) && !empty($_POST['pincode'])){

      $query="select * from cod_locations where pin=$pincode";
      $res=mysql_query($query);
      $count=mysql_num_rows($res);
      $HTML='';
      if($count > 0){
        $HTML='delivery available';
      }else{
        $HTML='not there';
      }
      echo $HTML;
}
?>

问题:即使数据库中的有效代码显示为无效。 任何帮助将不胜感激。我想问题在于ajax部分的结果。

1 个答案:

答案 0 :(得分:1)

这里有一些问题:

  1. 您将此设置发送到您的php脚本:var Str="pin=" + checkcode;。所以在php方面你需要$_POST['pin'];
  2. 当设置密码时,您总是回应一些东西(您的$HTML变量),因此成功函数中的result变量永远不会为空;
  3. 你有一个SQL注入问题。你应该切换到PDO或mysqli和准备好的陈述。