gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:28:48 25 4
gpt4 key购买 nike

我有一个页面,单击按钮即可运行 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 输入标签和 php 表单处理

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

当我这样做时,当页面重新加载时,echo $_POST['commandSort'] 没有显示任何内容。既不显示原始值也不显示更改后的值。

真的,我只需要 $_POST['commandSort'] 来获取更改后的输入框的值,然后我就可以实现将我想要的任何值放入我的查询中进行排序随心所欲。

提前致谢!

-安东尼

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

更新:解决方案

此问题的解决方案(归功于我选择作为答案的一位用户)是使用 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>

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

<?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'] 在 PHP 中。如果您遇到类似问题,请随时给我发消息以获得进一步的解释。

感谢所有回复的人。

-安东尼

最佳答案

$_POST['commandSort']为空,因为您没有提交表单,请尝试代替

location.reload(true);

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

重命名

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

关于javascript - 传递变量 PHP、Javascript location.reload 和 HTML 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28396518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com