【问题标题】:Code does not run at all times in php contact form page代码并非始终在 php 联系表单页面中运行
【发布时间】:2014-09-16 16:35:52
【问题描述】:

我已上传包含姓名、电子邮件地址、电话号码、消息 (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 运行时也会发生同样的情况。请原谅我把整个代码放在这里,它太大了。

【问题讨论】:

  • 是否有控制台错误???

标签: javascript php


【解决方案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";

【讨论】:

  • 谢谢 Butt4cak3。你是对的。我按照你说的做了,现在效果很好。非常感谢。我喜欢你说明解决方案的方式。
猜你喜欢
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 2017-10-02
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多