传递变量PHP,Java脚本location.reload和HTML输入(Passing varia

2019-10-21 19:28发布

我有一个运行MySQL查询掀起了点击按钮的页面。 查询结果显示约6左右的柱用约100行。

我希望用户能够诉诸基于单击列标题的查询结果。 几乎将它们发送到同一页面使用相同的查询,只需使出。

所以这是我到目前为止,都在同一个脚本。

HTML表(回荡在PHP)

echo "<th id='frame_data_table'><a onClick='innerChange()' href='#'>Command</a></th>";


JavaScript函数

function innerChange() {
    document.getElementById("innerTest").value = "Changed it.";
    location.reload(true);
}

HTML input标签和PHP表单处理

<?php echo "-->" . $_POST['commandSort'] . "<--"; ?>
<form method="post">
    <input type="text" id="innerTest" name="commandSort" value="command" />
</form>

当我这样做,当页面重新加载什么也不显示了echo $_POST['commandSort'] 既不显示原始值,也没有更改的值。

真的,我需要的是$_POST['commandSort']抢改变输入框的值,然后我可以实现将任何值我要到我的查询订购它,但是我想要的。

提前致谢!

- 安东尼

================================================== ================

UPDATE:解决方案

这个问题的解决(归功于谁,我选择的答案中的一个用户)是通过使用document.getElementById['mainForm'].submit() 下面是我。

HTML表单

<html>
<!--...some html code here...-->
<form method="post" id="mainForm" action="example.com/results.php">
  <!--...more code inside of the form here...-->
  <input type="checkbox" name="command" value="command" id="command"/><p>Command</p>
  <!--...more code inside of the form here...-->
  <input type="hidden" name="hiddenSort" id="hiddenSort" />
  <!--...more code inside of the form here...-->
</form>
<!--...some more html code here...-->
</html>

PHP example.com/results.php页面的JavaScript

<?php
/*...more php code here...*/
<if (isset($_POST['command'])) {
  ?><th id="frame_data_table"><a href="javascript:sortFunction('command');">Command</a></th><?php
}
/*...more php code that displays the query result (while(...)) here...*/
?>

JavaScript函数

<script>
  function sortFunction(x) {
    var sortVar = x;
    document.getElementById("hiddenSort").value = x;
    document.getElementById("mainForm").submit();
  }
</script>

说明:在最初的查询结果是取出并显示,如果用户点击了“命令”栏链接,该上document.getElementById['mainform'].submit()重新提交相同的形式如先前运行,而在同一时间传递变量通过JavaScript的函数x。 变量决定如何查询将使出,为所有真正需要做的是填充一个变量"ORDER BY " . $_POST['commandSort'] "ORDER BY " . $_POST['commandSort']在PHP。 如果你遇到类似的问题,请随时给我发短信了进一步的解释。

感谢所有谁回答。

- 安东尼

Answer 1:

$_POST['commandSort']为空,因为你不提交表单,尝试代替

location.reload(true);

document.forms["form1"].submit();

重命名

<form method="post" id="form1">



Answer 2:

你确定你要使用JavaScript来呢? 它可以与HTML和PHP来完成。

例如。

<tr>
<th><a href="myfile.php?sort=blah1">Header Text 1</a></th>
<th><a href="myfile.php?sort=blah2">Header Text 2</a></th>
..
</tr>

那么在PHP中可以检索与该值:

$sort = $_GET['sort'];


Answer 3:

按钮,你可以做的点击:

window.location.href = window.location.href.replace( /[\?#].*|$/, "?q=mysort" );

并获得排序选项为$sort= $_GET['q'];



文章来源: Passing variable PHP, Javascript location.reload, and HTML input