传递变量 PHP、Javascript location.reload 和 HTML 输入
Passing variable PHP, Javascript location.reload, and HTML input
我有一个页面,运行通过单击按钮进行 MySQL 查询。查询结果显示大约6列,大约100行。
我希望用户能够根据单击列 headers 对查询结果进行求和。几乎将它们发送到具有相同查询的同一页面,只是采取了措施。
这就是我目前所拥有的,都在同一个脚本中。
HTML table(在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>
PHP 示例。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>
说明:在获取并显示初始查询结果后,如果用户单击 "command" 列 link,document.getElementById['mainform'].submit()
将重新提交与之前相同的表单 运行,同时通过javascript函数x传递变量。该变量指示如何对查询进行排序,因为真正需要做的就是用 PHP 中的 "ORDER BY " . $_POST['commandSort']
填充变量。如果您遇到类似问题,请随时给我发消息以获得进一步的解释。
感谢所有回复的人。
-安东尼
您确定要为此使用 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'];
点击按钮你可以做:
window.location.href = window.location.href.replace( /[\?#].*|$/, "?q=mysort" );
并获取排序选项 $sort= $_GET['q'];
$_POST['commandSort']
为空,因为您没有提交表单,请尝试使用
location.reload(true);
和
document.forms["form1"].submit();
正在重命名
<form method="post" id="form1">
.
我有一个页面,运行通过单击按钮进行 MySQL 查询。查询结果显示大约6列,大约100行。
我希望用户能够根据单击列 headers 对查询结果进行求和。几乎将它们发送到具有相同查询的同一页面,只是采取了措施。
这就是我目前所拥有的,都在同一个脚本中。
HTML table(在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>
PHP 示例。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>
说明:在获取并显示初始查询结果后,如果用户单击 "command" 列 link,document.getElementById['mainform'].submit()
将重新提交与之前相同的表单 运行,同时通过javascript函数x传递变量。该变量指示如何对查询进行排序,因为真正需要做的就是用 PHP 中的 "ORDER BY " . $_POST['commandSort']
填充变量。如果您遇到类似问题,请随时给我发消息以获得进一步的解释。
感谢所有回复的人。
-安东尼
您确定要为此使用 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'];
点击按钮你可以做:
window.location.href = window.location.href.replace( /[\?#].*|$/, "?q=mysort" );
并获取排序选项 $sort= $_GET['q'];
$_POST['commandSort']
为空,因为您没有提交表单,请尝试使用
location.reload(true);
和
document.forms["form1"].submit();
正在重命名
<form method="post" id="form1">
.