如何在PHP代码中调用JavaScript函数?

5
在我的登录表单中,我正在进行服务器端验证,如果出现错误,我希望在已验证的控件下方显示这些错误。为此,我正在尝试在php代码中调用javascript函数来显示验证消息,但无法调用。
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if($_POST['txtUsername']=='')
{
    //here i want to call javascript function to display message    
}
}
?>
 <form action="login.php" method="POST">

 Username <input type="text" size="30" name="txtUsername" id="user" /><br />

 Password <input type="password" size="30" name="txtPassword" id="pass" /><br />

 <input type="submit" value="Login" name="loginSubmit"/>

</form>


<script type="text/javascript">

   function showMessage(value)
   {
    document.getElementById(value).innerHTML= value+"can not be empty."; 
   }
   </script>

请告诉我如何在表单中,在经过验证的控件下方显示服务器端验证。

为什么不先验证表单输入,然后再提交表单呢? - Sudip Pal
把一个 jQuery 脚本分配给提交按钮,这样不是很有用吗?如果我没有漏掉什么,脚本应该能够为您进行验证。 - Bas Jansen
它不起作用是因为您在声明函数之前使用了它。先声明脚本,然后再使用PHP。 - AZT
4个回答

3

使用这个

if($_POST['txtUsername']=='')
{
     echo '<script> showMessage("txtUsername"); </script>';
}

@yogesh 如果我需要在函数中传递POST值,然后在JavaScript中使用并将该值分配给输入,该怎么办? - Nehal

3

类似这样的:

<html>
<head>
<script type="text/javascript">

   function showMessage(value)
   {
       document.getElementById(value).innerHTML= value+"can not be empty."; 
   }
   </script>
</head>
<body>
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if($_POST['txtUsername']=='')
    {
        echo '<script> showMessage("txtUsername"); </script>';
    }
}
?>
 <form action="login.php" method="POST">

 Username <input type="text" size="30" name="txtUsername" id="txtUsername" /><br />

 Password <input type="password" size="30" name="txtPassword" id="txtPassword" /><br />

 <input type="submit" value="Login" name="loginSubmit"/>

</form>

</body>
</html>

但我不想在警告框中显示消息。我想要作为innerHTML显示。 - Kalpana Dixit
请检查更新后的答案,同时注意我已更改文本框的ID。 - Aamir Mahmood
我刚刚在那个位置添加了<script>标签,请现在检查一下。 - Aamir Mahmood
你需要在代码上方定义 showMessage 函数。请检查更新后的答案。 - Aamir Mahmood

2
您可以将您的PHP代码放在任何您喜欢的地方,比如说在body属性中。您可以尝试以下代码:
<body  <?php

        if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if($_POST['txtUsername']=='')
{
  echo "onload = 'showMessage("VALUE")'";    
}
}
?> > // end of body start tag

 <form action="login.php" method="POST">

 Username <input type="text" size="30" name="txtUsername" id="user" /><br />

 Password <input type="password" size="30" name="txtPassword" id="pass" /><br />

 <input type="submit" value="Login" name="loginSubmit"/>

</form>
</body>

<script type="text/javascript">

   function showMessage(value)
   {
    document.getElementById(value).innerHTML= value+"can not be empty."; 
   }
   </script>

如果验证成功,php代码将不会输出任何内容,并且javascript函数也不会被调用。对我来说很有效。如果这有帮助,请告诉我。

1
    <?php

    if($_SERVER['REQUEST_METHOD'] == 'POST')
    {
      if($_POST['txtUsername']=='')
      {
      ?>
          <script>
             //Define the function somewhere in the top or in external js and include it.
            callyourfunction();
          </script>
      <?php
      }
    }
?>              //Its not working

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接