我想完成以下任务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>
可用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部分的结果
这里有几个问题:
- 你正在设置它被发送到你的php脚本:
var Str="pin=" + checkcode;
。php端需要$_POST['pin']
; - 当pin码被设置(你的
$HTML
变量)时,你总是会回显一些东西,所以你的成功函数中的result
变量永远不会为空; - 你有一个sql注入问题。你应该切换到PDO或mysql和预处理语句。