如何将JavaScript变量传递给PHP?

如何将JavaScript变量传递给PHP?

我想使用表单中的隐藏输入将JavaScript变量传递给PHP。


但我不能得到的价值$_POST['hidden1']为$salarieid。有什么不对?


这是代码:


<script type="text/javascript">

// view which the user has chosen

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

https://img3.mukewang.com/5ce60c140001e1a605920425.jpg

莫回无
浏览 1616回答 3
3回答

叮当猫咪

您无法将当前页面javascript中的变量值传递给当前页面PHP代码... PHP代码在服务器端运行,并且它不知道客户端上发生了什么。您需要使用其他机制从html-form将变量传递给PHP代码,例如在GET或POST方法上提交表单。<DOCTYPE&nbsp;html><html> &nbsp;&nbsp;<head> &nbsp;&nbsp;&nbsp;&nbsp;<title>My&nbsp;Test&nbsp;Form</title> &nbsp;&nbsp;</head> &nbsp;&nbsp;<body> &nbsp;&nbsp;&nbsp;&nbsp;<form&nbsp;method="POST"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p>Please,&nbsp;choose&nbsp;the&nbsp;salary&nbsp;id&nbsp;to&nbsp;proceed&nbsp;result:</p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label&nbsp;for="salarieids">SalarieID:</label> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;salarie"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;mysql_query($query); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($result)&nbsp;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select&nbsp;id="salarieids"&nbsp;name="salarieid"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;($row&nbsp;=&nbsp;mysql_fetch_assoc($result))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'<option&nbsp;value="',&nbsp;$row['salaried'],&nbsp;'">',&nbsp;$row['salaried'],&nbsp;'</option>'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//between&nbsp;<option></option>&nbsp;tags&nbsp;you&nbsp;can&nbsp;output&nbsp;something&nbsp;more&nbsp;human-friendly&nbsp;(like&nbsp;$row['name'], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;table&nbsp;"salaried"&nbsp;have&nbsp;one)&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</select> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;endif&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<p> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="submit"&nbsp;value="Sumbit&nbsp;my&nbsp;choice"/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p> &nbsp;&nbsp;&nbsp;&nbsp;</form> &nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;if&nbsp;isset($_POST['salaried'])&nbsp;:&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query&nbsp;=&nbsp;"SELECT&nbsp;*&nbsp;FROM&nbsp;salarie&nbsp;WHERE&nbsp;salarieid&nbsp;=&nbsp;"&nbsp;.&nbsp;$_POST['salarieid']; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;mysql_query($query); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($result)&nbsp;: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<table> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;($row&nbsp;=&nbsp;mysql_fetch_assoc($result))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'<tr>'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'<td>',&nbsp;$row['salaried'],&nbsp;'</td><td>',&nbsp;$row['bla-bla-bla'],&nbsp;'</td>'&nbsp;...;&nbsp;//&nbsp;and&nbsp;others &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;'</tr>'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</table> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;endif?> &nbsp;&nbsp;&nbsp;&nbsp;<?php&nbsp;endif&nbsp;?> &nbsp;&nbsp;</body></html>

鸿蒙传说

只需将其保存在cookie中:$(document).ready(function&nbsp;()&nbsp;{ &nbsp;&nbsp;createCookie("height",&nbsp;$(window).height(),&nbsp;"10");});function&nbsp;createCookie(name,&nbsp;value,&nbsp;days)&nbsp;{ &nbsp;&nbsp;var&nbsp;expires; &nbsp;&nbsp;if&nbsp;(days)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;date&nbsp;=&nbsp;new&nbsp;Date(); &nbsp;&nbsp;&nbsp;&nbsp;date.setTime(date.getTime()&nbsp;+&nbsp;(days&nbsp;*&nbsp;24&nbsp;*&nbsp;60&nbsp;*&nbsp;60&nbsp;*&nbsp;1000)); &nbsp;&nbsp;&nbsp;&nbsp;expires&nbsp;=&nbsp;";&nbsp;expires="&nbsp;+&nbsp;date.toGMTString(); &nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;expires&nbsp;=&nbsp;""; &nbsp;&nbsp;} &nbsp;&nbsp;document.cookie&nbsp;=&nbsp;escape(name)&nbsp;+&nbsp;"="&nbsp;+&nbsp;escape(value)&nbsp;+&nbsp;expires&nbsp;+&nbsp;";&nbsp;path=/";}然后用php读取它<?PHP &nbsp;&nbsp;&nbsp;$_COOKIE["height"];?>它不是一个漂亮的解决方案,但它确实有效。干杯。

呼如林

有几种方法可以将变量从javascript传递到php(当然不是当前页面)你可以:以此处所述的形式发送信息,(将导致页面刷新)在ajax中传递它(这里有几个帖子)(没有页面刷新)通过XMLHttpRequest请求(没有页面刷新)发出http请求,如下所示:&nbsp;if&nbsp;(window.XMLHttpRequest){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp=new&nbsp;XMLHttpRequest(); &nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlhttp=new&nbsp;ActiveXObject("Microsoft.XMLHTTP"); &nbsp;} &nbsp;var&nbsp;PageToSendTo&nbsp;=&nbsp;"nowitworks.php?"; &nbsp;var&nbsp;MyVariable&nbsp;=&nbsp;"variableData"; &nbsp;var&nbsp;VariablePlaceholder&nbsp;=&nbsp;"variableName="; &nbsp;var&nbsp;UrlToSend&nbsp;=&nbsp;PageToSendTo&nbsp;+&nbsp;VariablePlaceholder&nbsp;+&nbsp;MyVariable; &nbsp;xmlhttp.open("GET",&nbsp;UrlToSend,&nbsp;false); &nbsp;xmlhttp.send();我确信这可以看起来更漂亮并循环遍历所有变量和诸如此类的东西 - 但我保持它基本,以便让新手更容易理解。
打开App,查看更多内容
随时随地看视频慕课网APP