为了账号安全,请及时绑定邮箱和手机立即绑定

如何将JavaScript变量传递给PHP?

如何将JavaScript变量传递给PHP?

莫回无 2019-05-23 10:55:24
如何将JavaScript变量传递给PHP?我想使用表单中的隐藏输入将JavaScript变量传递给PHP。但我不能得到的价值$_POST['hidden1']为$salarieid。有什么不对?这是代码:<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>
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您无法将当前页面javascript中的变量值传递给当前页面PHP代码... PHP代码在服务器端运行,并且它不知道客户端上发生了什么。

您需要使用其他机制从html-form将变量传递给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>


查看完整回答
反对 回复 2019-05-23
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

只需将其保存在cookie中:

$(document).ready(function () {
  createCookie("height", $(window).height(), "10");});function createCookie(name, value, days) {
  var expires;
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toGMTString();
  } else {
   expires = "";
  }
  document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/";}

然后用php读取它

<?PHP
   $_COOKIE["height"];?>

它不是一个漂亮的解决方案,但它确实有效。干杯。


查看完整回答
反对 回复 2019-05-23
?
呼如林

TA贡献1798条经验 获得超3个赞

有几种方法可以将变量从javascript传递到php(当然不是当前页面)

你可以:

  1. 以此处所述的形式发送信息,(将导致页面刷新)

  2. 在ajax中传递它(这里有几个帖子)(没有页面刷新)

  3. 通过XMLHttpRequest请求(没有页面刷新)发出http请求,如下所示:


 if (window.XMLHttpRequest){
     xmlhttp=new XMLHttpRequest();
 }else{
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }

 var PageToSendTo = "nowitworks.php?";
 var MyVariable = "variableData";
 var VariablePlaceholder = "variableName=";
 var UrlToSend = PageToSendTo + VariablePlaceholder + MyVariable;

 xmlhttp.open("GET", UrlToSend, false);
 xmlhttp.send();

我确信这可以看起来更漂亮并循环遍历所有变量和诸如此类的东西 - 但我保持它基本,以便让新手更容易理解。


查看完整回答
反对 回复 2019-05-23
  • 3 回答
  • 0 关注
  • 1613 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信