如何传递javascript变量到php中

问题:

我想通过Form表单中的hidden input标签,传递javascript变量到PHP中,但是无法实现,是不是我的代码写的有问题?代码如下:

<script type="text/javascript">// view which the user has chosenfunction func_load3(name){
   var oForm = document.forms["myform"];
   var oSelectBox = oForm.select3;
   var iChoice = oSelectBox.selectedIndex;
   //alert("you have choosen: " + 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 display the query result.
</table>

最佳答案:

您无法从当前页的javascript传递变量值到当前页的PHP代码...

您需要使用另外一种方式传递变量值给PHP代码,通过html表单,见如下代码:

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