代码不会在php联系表单页面中一直运行

时间:2014-09-16 08:17:48

标签: javascript php

我上传了一个联系表格,上面有姓名,电子邮件地址,电话号码,留言(textarea),验证码文本和提交按钮。以下是提交按钮的点击代码

$("#submit_btn").click(function() {
    var code = <?php echo($_SESSION['secure']);?>;
    var scode = $('input[name=code]').val();

    if(code != scode) {
        output = "Security code doesn't match. Retry";
        $("#result").hide().html(output).slideDown();
    } else {
        //get input field values
        var user_name       = $('input[name=name]').val(); 
        var user_email      = $('input[name=email]').val();
        var user_phone      = $('input[name=phone]').val();
        var user_message    = $('textarea[name=message]').val();

        var proceed = true;
        if(user_name==""){ 
            $('input[name=name]').css('background-color','yellow');
            proceed = false;
        }
        if(user_email==""){ 
            $('input[name=email]').css('background-color','yellow'); 
            proceed = false;
        }
        if(user_phone=="") {    
            $('input[name=phone]').css('background-color','yellow'); 
            proceed = false;
        }
        if(user_message=="") {  
            $('textarea[name=message]').css('background-color','yellow'); 
            proceed = false;
        }
        if(user_phone=="") {    
            $('input[name=phone]').css('background-color','yellow'); 
            proceed = false;
        }

    }
});

问题是,我需要做一些手动刷新来运行此代码。我尝试用其他一些代码替换整个点击代码(比如一个简单的消息提醒等)并且效果很好。 你能不能告诉我为什么这段代码一直没有运行? 从服务器运行并通过apache时也会发生同样的情况。请原谅我把整个代码放在这里,它太大了。

1 个答案:

答案 0 :(得分:1)

问题可能出在第2行,您可以在其中为code变量指定值。您应该在PHP代码周围加上引号,否则只要代码不是数字就会引发错误。我怀疑安全代码有时是字母数字,而有时只是数字,这就是为什么它有时可以工作,有时不工作。如果我是对的,请告诉我。

说明问题:这是有问题的一行:

var code = <?php echo($_SESSION['secure']);?>;

假设当前的安全码为“1234”,因此该行变为:

var code = 1234;

这很好。但鉴于安全代码为“abcd”,你最终得到了这个:

var code = abcd;

您的代码中可能没有名为abcd的变量,因此您获得ReferenceError并且函数执行停止。正如我所说,解决方法是将PHP代码放在引号中:

var code = "<?php echo($_SESSION['secure']);?>";

这将导致:

var code = "abcd";