如何将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 回答
![?](http://img1.sycdn.imooc.com/545862770001a22702200220-100-100.jpg)
叮当猫咪
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>
![?](http://img1.sycdn.imooc.com/54584ef20001deba02200220-100-100.jpg)
鸿蒙传说
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"];?>
它不是一个漂亮的解决方案,但它确实有效。干杯。
![?](http://img1.sycdn.imooc.com/533e4c3300019caf02000200-100-100.jpg)
呼如林
TA贡献1798条经验 获得超3个赞
有几种方法可以将变量从javascript传递到php(当然不是当前页面)
你可以:
以此处所述的形式发送信息,(将导致页面刷新)
在ajax中传递它(这里有几个帖子)(没有页面刷新)
通过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();
我确信这可以看起来更漂亮并循环遍历所有变量和诸如此类的东西 - 但我保持它基本,以便让新手更容易理解。
添加回答
举报
0/150
提交
取消