JS脚本函数在php中不起作用


JS script function not working in php

这是我的JS函数:

function checkError() {
            var field = 'error';
            var url = window.location.href;
            document.write('test');
            window.alert('please work');
            if(url.indexOf('?' + field + '=') != -1)
                document.write('The username and password do not match. Do not use your full email.');
return true;            
            }

然后在我的正文段落中,我有:

<?php echo '<script> checkError();</script>' ?>

调用它没有任何错误。但是该功能在我的页面上没有任何作用。有什么想法吗?我尝试将JS脚本放在页面和JS文件中,并正确调用其包含。

完整脚本:

<html>
    <head>
        <meta charset="UTF-8">
        <title>Secure Login</title>
        <script type="text/JavaScript" src="js/functions.js"></script>
        <link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css">
        <link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css">
    </head>
    <body>
        <?php include('header.php'); ?>
        <div id="mainContent">
          <h1>Member Login</h1>
          <div id="mainParaText">
          <?php echo '<script> checkError();</script>' ?>
        </div>
     </body>
</html>

原来JS函数是未定义的。呃,不知道为什么(以为我不久前解决了这个问题,哈哈)

尝试如下:

 <html>
  <head>
    <meta charset="UTF-8">
    <title>Secure Login</title>
    <script type="text/JavaScript" src="js/functions.js"></script>
    <link href="stylesheets/mainStyle.css" rel="stylesheet" type="text/css">
    <link href="stylesheets/formStyle.css" rel="stylesheet" type="text/css">
    <script type="text/javascript">
        function checkError(){
           var field = 'error';
        var url = window.location.href;
        document.write('test');
        window.alert('please work');
        if(url.indexOf('?' + field + '=') != -1)
            document.write('The username and password do not match. Do not use your full email.');
        return true;   
        }
       <?php
           echo "checkError();";
       ?>
   </script>
</head>
 <body>
      <?php include('header.php'); ?>
     <div id="mainContent">
      <h1>Member Login</h1>
      <div id="mainParaText">
      <?php echo '<script> checkError();</script>' ?>
    </div>
 </body>
 </html>

JS是客户端,PHP是服务器端。

这意味着PHP代码中的所有内容都将在服务器上处理,然后"回显"到您的浏览器,在那里您会收到未定义的错误。

调试时,您应该始终首先在浏览器中检查源代码,以便准确查看服务器回显的内容。

我有点猜测,但尝试使用双引号而不是单引号。

并且与问题无关...您正在使用JS检查用户名和密码?你到底要怎么做?用 ajax 回调到服务器?如果您使用 JS 检查,这意味着密码应该在源代码中的某个地方并且不安全。用户名/通过验证应始终在服务器端进行(使用 ajax 请求或通常的提交表单)。