JQuery没有从PHP echo运行

时间:2015-06-13 12:46:28

标签: javascript php jquery

我试图在用户提交登录表单后,在PHP的echo语句中执行一些简单的JQuery命令。

用户可以使用正确的凭据登录,但如果他们输入错误的凭据,则应显示无效的凭据段落。

以下是代码:

<?php
    //PHP code for login in, working, not needed to show
    echo 'Testing
        <script>
            $( ".wrong" ).show( "slow" );
        </script>';
?>


<!DOCTYPE html>
<html>

<head>
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>

<body class="login">

<form action="" method="post" class="login-form">
    <p class="wrong" style="display: none;">Invalid Credentials</p>
    <a class="link" href="#">Forgot your password?</a>

    <button type="submit" class="login-btn" name="submitLogin">Log in</button>
</form>

</body>

注意:来自echo的测试值显示,但 JQuery不会执行。

无法将PHP代码放在HTML之后,因为它会为我的登录表单创建会话。

2 个答案:

答案 0 :(得分:2)

<?php
    echo 'Testing
        <script>
            $( ".wrong" ).show( "slow" );
        </script>';
?>

这不会创建会话,也不需要位于顶部。需要在顶部的是session_start()调用是,但顶部不需要回显脚本html

例如你可以做

<?php
session_start();
if(attemptLogin()){
  //logged in path
} else {
  //wrong credentials
  $LoginError = true;
}
?>

<!doctype html>
<html>
<head>
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <?php if($LoginError):?>
    <script>
        jQuery(document).ready(function(){
            $( ".wrong" ).show( "slow" );
        });
    </script>;
    <?php endif;?>
</head>

答案 1 :(得分:0)

您需要首先加载您的js文件,然后加载要加载的DOM,然后您可以在</body>标记之前使用下面的代码,它将起作用。

<?php
    //PHP code for login in, working, not needed to show
    echo 'Testing
        <script>
            $( ".wrong" ).show( "slow" );
        </script>';
?>