我正在使用JavaScript验证表单。 这是基本验证。 我遇到问题的步骤是通过java脚本通过post将synum变量发送到我的php页面valid_synum.php,我在其中执行pdo查找以检查synum是否存在,然后根据回显1或0。结果。 我希望Java脚本获取该结果并发送警报错误,或者如果可以的话,允许表单提交。 这是我的JavaScript。 据我所知POST呼叫
$ .post(“ valid_synum.php”,{synum:synum},
永远不会被召唤。 我在php页面中放置了一个测试,并且该测试从未从脚本中激活。 如果我直接在浏览器中加载php,效果很好。
任何帮助将不胜感激。
<script>
function isNumber(input)
{
return (input - 0) == input && (input+'').replace(/^\s+|\s+$/g, "").length > 0;
}
function checkForm(f)
{
if (f.elements['worknum'].value != "")
{
if ((isNumber(f.elements['worknum'].value)) == false)
{
alert("The Work Order Number is not valid")
return false;
}
var chars = 6;
if((f.elements['worknum'].value).length != 6)
{
alert("The Work Order Number is not 6 digits")
return false;
}
}
if (f.elements['synum'].value == "")
{
alert("Please Enter the Store Number");
return false;
}
if (f.elements['worknum'].value == "")
{
alert("Please Enter the Work Order Number");
return false;
}
if (f.elements['synum'].value != "")
{
//get the username
var synum = (f.elements['synum'].value);
$.post("valid_synum.php", { synum: synum },
function(result){
//if the result is 1
if(result == 1){
//do nothing valid synum
alert("Good")
return false;
}else{
//show that the username is NOT available
alert("The store number is NOT valid. Please Enter full store number")
return false;
}
});
}
else
{
f.submit();
return false;
}
}
</script>
这是我的php页面代码:
$id=$_POST['synum'];
try{
$conn = new PDO( "sqlsrv:Server= $eautoserver ; Database = $eautodb ", $eautouser, $eautopwd);
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $conn->prepare('SELECT * FROM vw_DCR_Web_Customer_Query WHERE CustomerNumber= :id');
$stmt->execute(array('id' => $id));
$row = $stmt->fetch();
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
if ($row){
echo 1;
$email_body="1";
}else{
echo 0;
$email_body="0";
}
我应该检查方括号是否正确,以了解为什么您的代码未按要求输入。
顺便说一句,您可以测试字符串是否为数字,并以更简洁的方式验证其是否为空。
function isNumber(number){
return !isNaN(+number) && number !== ""
}
也许这篇博客文章会为您提供帮助: http : //blog.secull.org/php-functions-in-javascript/还有一个类似的问题,它显示了如何解决它。
伴侣
我更改了设置代码的方式并删除了
$(document).ready(function(){
$("#synum").change(function() {
$.post("valid_synum.php", { synum: synum },
function(result){
//if the result is 1
if(result == 1){
//do nothing valid synum
alert("Good")
return false;
}else{
//show that the username is NOT available
alert("The store number is NOT valid. Please Enter full store number")
return false;
}
});
在我的checkform函数中,它曾经是一个单独的函数,但是它可以立即开始正常运行。