How to call javascript function in php code?
Asked Answered
C

4

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.

Colorable answered 20/2, 2013 at 10:9 Comment(3)
Why don't you validate the inputs from form and then submit the form?Chiu
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 somethingMightily
Its not working because You are using function before declaring it.Declare script first and then use php.Tsan
L
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>
Looming answered 20/2, 2013 at 10:10 Comment(4)
:: but i dont want to show message in alert box. i want to show as innerHTMLColorable
check updated answer, also note that i have changed the IDs of the textboxesLooming
i just have added <script> tags around that please check nowLooming
You need to define showMessage function above the code. check updated answerLooming
J
3

use this

if($_POST['txtUsername']=='')
{
     echo '<script> showMessage("txtUsername"); </script>';
}
Jaddo answered 20/2, 2013 at 10:13 Comment(1)
@yogesh what if I need to pass the POST value in the function and then use in javascript to assign that value to inputGervase
I
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.

Isotope answered 6/9, 2013 at 12:10 Comment(0)
J
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
Jewett answered 20/2, 2013 at 10:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.