Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Web Technology by (7k points)

I want to pass JavaScript variables to PHP using a hidden input in a form.

But I can’t get the value of $_PoST[‘hidden1’] into $salaried. Is there something wrong?

<script type="text/javascript">

    // View what the user has chosen

    function func_load3(name) {

        var oForm = document.forms["myform"];

        var oSelectBox = oForm.select3;

        var iChoice = oSelectBox.selectedIndex;

        //alert("You have chosen: " + oSelectBox.options[iChoice].text);

        //document.write(oSelectBox.options[iChoice].text);

        var sa = oSelectBox.options[iChoice].text;

        document.getElementById("hidden1").value = sa;

    }

</script>

<form name="myform" action="<?php echo $_SERVER['$PHP_SELF']; ?>" method="POST">

    <input type="hidden" name="hidden1" id="hidden1" />

</form>

<?php

   $salarieid = $_POST['hidden1'];

   $query = "select * from salarie where salarieid = ".$salarieid;

   echo $query;

   $result = mysql_query($query);

?>

<table>

   Code for displaying the query result.

</table>

1 Answer

0 votes
by (13.1k points)

You can't pass variable values from the JavaScript code of the current page to the current page. The PHP code runs on the server-side and knows nothing about what's happening on the client-side.

You need to use another mechanism to pass variables to PHP code from the HTML form, such as submitting a form using the GET or POST methods.

<DOCTYPE html>

<html>

  <head>

    <title>My Test Form</title>

  </head>

  <body>

    <form method="POST">

      <p>Please, choose the salary id to proceed result:</p>

      <p>

        <label for="salarieids">SalarieID:</label>

        <?php

          $query = "SELECT * FROM salarie";

          $result = mysql_query($query);

          if ($result) :

        ?>

        <select id="salarieids" name="salarieid">

          <?php

            while ($row = mysql_fetch_assoc($result)) {

              echo '<option value="', $row['salaried'], '">', $row['salaried'], '</option>'; //between <option></option> tags you can output something more human-friendly (like $row['name'], if table "salaried" have one)

            }

          ?>

        </select>

        <?php endif ?>

      </p>

      <p>

        <input type="submit" value="Sumbit my choice"/>

      </p>

    </form>

    <?php if isset($_POST['salaried']) : ?>

      <?php

        $query = "SELECT * FROM salarie WHERE salarieid = " . $_POST['salarieid'];

        $result = mysql_query($query);

        if ($result) :

      ?>

        <table>

          <?php

            while ($row = mysql_fetch_assoc($result)) {

              echo '<tr>';

              echo '<td>', $row['salaried'], '</td><td>', $row['bla-bla-bla'], '</td>' ...; // and others

              echo '</tr>';

            }

          ?>

        </table>

      <?php endif?>

    <?php endif ?>

  </body>

</html>

Want to be a full stack developer? Check out the full stack developer course from Intellipaat.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...