我想使用表单中的隐藏输入将 JavaScript 变量传递给 PHP。
但我无法获得$_POST['hidden1']into的价值$salarieid。有什么不对?
$_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>