传递变量PHP、Javascript location.reload和HTML输入

传递变量PHP、Javascript location.reload和HTML输入,javascript,php,html,post,reload,Javascript,Php,Html,Post,Reload,我有一个页面,通过点击按钮运行MySQL查询。查询结果显示大约6列,大约100行 我希望用户能够在单击列标题的基础上使用查询结果。几乎是用相同的查询将它们发送到相同的页面,只是求助于 这是我到目前为止所做的,都在同一个脚本中 HTML表格(在PHP中回音) HTML输入标记和php表单处理 带有Javascript的PHP example.com/results.PHP页面 Javascript函数 函数排序函数(x){ var-sortVar=x; document.getElement

我有一个页面,通过点击按钮运行MySQL查询。查询结果显示大约6列,大约100行

我希望用户能够在单击列标题的基础上使用查询结果。几乎是用相同的查询将它们发送到相同的页面,只是求助于

这是我到目前为止所做的,都在同一个脚本中

HTML表格(在PHP中回音)

HTML输入标记和php表单处理

带有Javascript的PHP example.com/results.PHP页面


Javascript函数


函数排序函数(x){
var-sortVar=x;
document.getElementById(“hiddenSort”).value=x;
document.getElementById(“mainForm”).submit();
}
说明:获取并显示初始查询结果后,如果用户单击“命令”列链接,
document.getElementById['mainform'].submit()
将重新提交与先前运行的表单相同的表单,同时通过javascript函数x传递变量。该变量指示如何重新调用查询,因为真正需要做的是使用
“ORDER BY”填充变量$_在PHP中发布['commandSort']
。如果您遇到类似的问题,请随时给我发信息,以便进一步解释

感谢所有回应的人


-Anthony

您确定要为此使用JavaScript吗?它可以用HTML和PHP来完成

例如


单击按钮,您可以执行以下操作:

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

获取排序选项为
$sort=$\u get['q']

$\u POST['commandSort']
为空,因为您没有提交表单,请尝试而不是

location.reload(真)

document.forms[“form1”].submit()

更名


您不需要提交表单而不是刷新页面吗?然后为表单指定一个id,而不是location.reload使用
document.getElementById(“myForm”).submit()我以前尝试过这种方法。我不太熟悉重新加载、刷新等。。。以及它是如何运行的,但当我这样做时,查询不会随着页面的重新加载而传递。我不确定您为什么要重新加载页面,您是否只需单击页眉文本,然后进入一个带有?sort=blah的页面并显示排序的行,之后按f5应该仍然会对数据进行排序,因为?sort=blah仍然在URL中。同样,这样你就不需要任何JS,比如:location.reload等。我也不知道我为什么要重新加载页面,或者重新加载和你选择的方法之间的确切区别是什么。我所知道的是,当我过去尝试过你的方法时,查询结果不再显示在页面上,但当我使用
location.reload
时,它会显示出来。查询由用户高度定制,允许用户选择所需的列以及查询结果中显示的数据。我需要保留用户选择的查询结果,但使用数据。我不知道如何使用您的方法并传递相同的结果。用户通过页面另一部分上的复选框选择查询结果,以及某些列中确切显示的内容。我想给用户一个选项,单击其中一列的顶部以获取数据。您可以用PHP构建链接的查询,其中包含来自$\u GET的所有数据,并将其粘贴在链接中(仅使用html/PHP)。我想这会让我更接近。我需要的仍然不起作用,但更具体地说,允许用户在表中查看查询结果的原始表单位于不同的文档
index.php
,结果位于
results.php
,其中
index.php
包含在结果文档中。我是否可以使用结果脚本中document.forms[''].submit()的方法(列链接将在其中)重新提交引用index.php中我的原始表单的表单?我不了解您页面的方案,但如果您想提交另一个页面,可以更改action=“page where I want submit”。此外,您还可以尝试使用Ajax更改系统。我可以使用
document.getElementById['formName'].submit()
,这与您推荐的方法几乎相同。原问题将提出完整的解决方案。谢谢
function innerChange() {
    document.getElementById("innerTest").value = "Changed it.";
    location.reload(true);
}
<?php echo "-->" . $_POST['commandSort'] . "<--"; ?>
<form method="post">
    <input type="text" id="innerTest" name="commandSort" value="command" />
</form>
<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
/*...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...*/
?>
<script>
  function sortFunction(x) {
    var sortVar = x;
    document.getElementById("hiddenSort").value = x;
    document.getElementById("mainForm").submit();
  }
</script>
<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>
$sort = $_GET['sort'];
window.location.href = window.location.href.replace( /[\?#].*|$/, "?q=mysort" );