我在扫描条形码后设置了我的页面,它将分成两个自动完成。然后Ajax将数据发送到数据库以获得一些结果,在获得结果后它将发送到自动完成值。
我的问题来了,数据分开后我的页面变成了自动重载,为什么?
$("#model").change(function() {
var barcode;
barCode=$("#model").val();
var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();
var data2 = $("#serial").val(barCode.substr(barCode.length-8,8)).val();
$.ajax({
type:"post",
url:"process2.php",
data:"model="+data1+"&serial="+data2+"&action=checkdata",
cache:false,
async:false,
success: function(res){
$('#lotno').attr("value",res);
return false;
}
});
return false;
});
过程2:
switch(postVar('action')) {
/*check data*/
case 'checkdata' :
checkdata(postVar('model'),postVar('serial'));
break;
}
function checkdata($model,$serial){
$Mod = mysql_real_escape_string($model);
$Ser = mysql_real_escape_string($serial);
$Mod=strtoupper($Mod);
$Ser=strtoupper($Ser);
$sql="SELECT lotno
FROM dataserial
WHERE model='".$Mod."' AND startserial <= '".$Ser."' AND endserial >= '".$Ser."'";
ob_clean();
$res=mysql_query($sql) or die(_ERROR26.": ".mysql_error());
$dat=mysql_fetch_array($res,MYSQL_NUM);
if(mysql_affected_rows()>0) {
echo $dat[0];
} else {
echo "No specified data";
}
};
我在这个页面中有一些javascript: settingpage
答案 0 :(得分:0)
页面process2.php
是否与ajax相同?如果是,那么你需要的是jQuery event.preventDefault
$("#model").change(function(e) {
e.preventDefault();
var barcode;
barCode=$("#model").val();
var data1 = $("#model").val(barCode.substr(0,barCode.length-8)).val();
var data2 = $("#serial").val(barCode.substr(barCode.length-8,8)).val();
$.ajax({
type:"post",
url:"process2.php",
data:"model="+data1+"&serial="+data2+"&action=checkdata",
cache:false,
async:false,
success: function(res){
$('#lotno').attr("value",res);
//return false;
}
});
//return false;
});
答案 1 :(得分:0)
这个问题解决了。 它是由提交按钮(来自下载的表单模板)引起的。
之前:
<button id="registerButton" type="button" class="submit"><span>Submit </span></button>
之后:
<button id="registerButton" type="button" class="ui-state-default ui-corner-all"><span>Submit </span></button>
更改后,它正常工作。我不知道为什么?可能有人可以稍后解释。