php - 如何将 JavaScript 变量传递给 PHP?

标签 php javascript variables

我想使用表单中的隐藏输入将 JavaScript 变量传递给 PHP。

但我无法将 $_POST['hidden1'] 的值获取到 $salarieid 中。有什么问题吗?

这是代码:

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

最佳答案

您无法将变量值从当前页面 JavaScript 代码传递到当前页面 PHP 代码...PHP 代码在服务器端运行,它不知道客户端发生了什么。

您需要使用另一种机制将变量从 HTML 表单传递到 PHP 代码,例如使用 GET 或 POST 方法提交表单。

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

关于php - 如何将 JavaScript 变量传递给 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39538384/

相关文章:

php - 比较 Laravel Eloquent Result 并获取日期

php - Android - 如何使用 PHP 搜索具有多个条件的 MySQL 数据库?

php - 简单记录到 php 的数据库类/工具包?

javascript - AngularJS 1.5 : Component won't load http data

php - 请求类 Laravel 5.2

javascript - 单击按钮时水平滚动

javascript - Access-Control-Allow-Origin 不允许来源

bash - awk 在 bash 中使用的变量集

c - 宏中的可变参数

java - IntelliJ 代码模板