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

相关文章:

数据库的 PHP OOP 问题

javascript - 如果一个 div 包含所有指定元素,则选择该 div

javascript - 通过内部函数改变变量

javascript - JS - 使用 || 分配条件变量的差异或优点

variables - 如何将 Shiny 应用程序中的绘图(renderPlot)作为参数传递给 R Markdown?

php - 如何将多个表行从 JSON 对象获取到应用程序

php - PHP中的对象以什么顺序销毁?

php - Laravel 删除/忘记 Cookie 不工作

javascript - 执行 php 后如何加载用户脚本?

javascript - 在javascript中提高球的速度