5

on my login form, i am putting server side validations and if error occurs i want to display those error just below the validated control. Now for this, i am trying to call javascript function to show validation message in php code but not able to call.

<?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>

Please tell me how to display server side validation just below the validated control in form.

3
  • Why don't you validate the inputs from form and then submit the form? Commented Feb 20, 2013 at 10:11
  • Would it not be useful to actually assign a jQeury script to the submit? The script should then be able to do the validation for you unless I am missing something Commented Feb 20, 2013 at 10:11
  • Its not working because You are using function before declaring it.Declare script first and then use php. Commented Oct 27, 2014 at 20:15

4 Answers 4

3

use this

if($_POST['txtUsername']=='')
{
     echo '<script> showMessage("txtUsername"); </script>';
}
1
  • @yogesh what if I need to pass the POST value in the function and then use in javascript to assign that value to input Commented Jan 9, 2016 at 13:03
3

Something like this

<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>
4
  • :: but i dont want to show message in alert box. i want to show as innerHTML Commented Feb 20, 2013 at 10:11
  • check updated answer, also note that i have changed the IDs of the textboxes Commented Feb 20, 2013 at 10:11
  • i just have added <script> tags around that please check now Commented Feb 20, 2013 at 10:17
  • You need to define showMessage function above the code. check updated answer Commented Feb 20, 2013 at 10:24
2

You can put your php code anywhere you like let's say in the body like attribute. You can try the following code:

<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>

If the validation is successful the php code wont echo anything and the javascript function will not be called. Works for me :). Tell me if this helps.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.