0

我正在使用 JavaScript 来验证我的表单。这是基本的验证。我遇到问题的步骤是将 synum 变量通过 post 从 java 脚本发送到我的 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";
}
4

3 回答 3

1

我应该检查打开/关闭方括号是否可以知道为什么您的代码没有以所需的条件输入。

顺便说一句,您可以测试字符串是否为数字并以更简洁的方式验证它是否为空。

function isNumber(number){ 
    return !isNaN(+number) && number !== ""
}
于 2013-04-04T19:00:23.340 回答
0

我更改了设置代码的方式并删除了

$(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 函数中,一旦它是一个单独的函数,它就开始正确运行。

于 2013-04-05T12:42:42.810 回答
0

也许这篇博客文章会对您有所帮助:http: //blog.secull.org/php-functions-in-javascript/ 有一个类似的问题,并显示了如何解决它。

伴侣

于 2013-04-04T18:37:40.113 回答