HTML:更新页面与用户输入后重定向到新页面
我正在尝试编写一些HTML代码,以便在用户将输入提交到表单后,在当前页面上创建一个表。也就是说,我希望输出值显示在当前页面的底部,而不是在表单中输入值,单击submit,然后重定向到具有计算输出值的新页面。这样,用户输入保持不变,唯一的变化是将输出表追加到当前页面的底部。下面是我理想情况下希望页面工作的示例:HTML:更新页面与用户输入后重定向到新页面,html,Html,我正在尝试编写一些HTML代码,以便在用户将输入提交到表单后,在当前页面上创建一个表。也就是说,我希望输出值显示在当前页面的底部,而不是在表单中输入值,单击submit,然后重定向到具有计算输出值的新页面。这样,用户输入保持不变,唯一的变化是将输出表追加到当前页面的底部。下面是我理想情况下希望页面工作的示例: 任何帮助都将不胜感激。谢谢 您需要使用javascript来完成此操作。如果您提供了页面的当前代码和希望实现的特定目标,那么我可以给出一个示例脚本,但是如果您觉得自己编写代码很舒服,那么
任何帮助都将不胜感激。谢谢 您需要使用javascript来完成此操作。如果您提供了页面的当前代码和希望实现的特定目标,那么我可以给出一个示例脚本,但是如果您觉得自己编写代码很舒服,那么只需查看javascript教程。您需要表单操作来指向同一页面。假设页面的URL是 然后您需要将您的操作指向同一页 在你的表格里有一个隐藏的字段 <input type='hidden' name='formSubmitted' value='1' > 当此表单提交到自身时,您可以通过get参数检查隐藏字段是否有值 一旦获得该值,就可以进行条件检查以显示一个表。但出于这个原因,您需要使用服务器端语言,如jsp或php
另一种方法是不提交表格。而是在单击submit query按钮时调用javascript。此javascript将从填写的表单框中读取值,并将它们显示在下表中。您不知道要使用什么来处理表单,但您将无法仅使用HTML来处理表单。因此,您需要使用另一种语言进行某种处理 正如其他人所提到的,您可以使用JavaScript实现这一点。AJAX将是一种方法,但如果您真的愿意,您可以编写自己的代码来实现这一点(但如果您不必这样做,我不推荐使用AJAX) 另一种方法是使用PHP。提交表单时,让页面处理本身 与PHP建议类似,您可以通过CGI脚本/程序来实现这一点。表单中指定的操作是调用页面本身。下面是一个简单的Python示例,假设脚本的名称为so_self_call.py:
#!/usr/bin/env python
import cgi
import sys
def end_page():
print "</body>"
print "</html>"
def print_form():
print "<form action=\"so_self_call.py\">"
print "<input type=\"text\" name=\"theText\">"
print "<input type=\"submit\">"
print "</form>"
return
def start_page():
print "Content-Type: text/html"
print
print "<html>"
print "<head>"
print "<title>Example of Python CGI script which calls itself</title>"
print "</head>"
print "<body>"
return
def main():
start_page()
print_form()
the_form = cgi.FieldStorage()
if "theText" in the_form:
print "From last time, theText = %s" % (the_form["theText"].value)
end_page()
return
if __name__ == "__main__":
sys.exit(main())
#/usr/bin/env python
导入cgi
导入系统
def end_页面():
打印“”
打印“”
def print_form():
打印“”
打印“”
打印“”
打印“”
返回
def开始页面()
打印“内容类型:文本/html”
打印
打印“”
打印“”
打印“调用自身的Python CGI脚本示例”
打印“”
打印“”
返回
def main():
开始页()
打印表格()
_form=cgi.FieldStorage()
如果“文本”在表格中:
打印“从上次开始,文本=%s”%(表格[“文本”]值)
(完)
返回
如果名称=“\uuuuu main\uuuuuuuu”:
sys.exit(main())
您可以使用jQuery轻松完成这项工作。使用将表单提交到计算器页面,并让计算器将其结果输出为JSON。然后,您可以在底部表格中输出该结果,而无需用户离开/重新加载页面
希望这有帮助。您可以在HTML文件中使用PHP 范例 只需像这样创建您的表单
<form action="welcome.php" method="get">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
姓名:
年龄:
当用户单击“提交”按钮时,发送到服务器的URL可能如下所示:
“welcome.php”文件现在可以使用$\u GET函数收集表单数据(表单字段的名称将自动成为$\u GET数组中的键):
然后创建一个表并添加正确位置的行。例如,这是您的表,您将在HTML文件中编写的内容就这么简单
Welcome <?php echo $_GET["fname"];?>.<br />
You are <?php echo $_GET["age"]; ?> years old!
欢迎。
你已经岁了!
希望有帮助。
如果有,请告诉我。谢谢
PK您是否考虑过在您提到的示例网页上进行“查看源代码”并复制他们的技术?这是一个很棒的想法。这也是我过去常做的事情:使用老的视图源代码技巧。唯一的问题是它不会显示任何服务器端编译。所有这些都会被处理,而这些值只会被输入到客户机的计算机中。因此,当数据提供给我们时,所有内容都已处理完毕,因此我们无法看到他们是如何处理的,只能看到返回给我们的值。我是唯一认为OP希望提交表单而不刷新页面的人吗,在这种情况下,他肯定需要JS通过AJAX提交表单?OP说他不希望页面“刷新”。这意味着他不希望浏览器发送新的HTTP头。他想要AJAX。实际上OP使用了“重定向”,而不是“刷新”。也许你的解释是正确的;如果是这样,JavaScript解决方案似乎是唯一的解决方案。然而,对我来说,“重定向”仅仅意味着将浏览器发送到不同的页面;因此会有各种可接受的解决方案,一些使用JavaScript(因此可能,但不一定是AJAX)和其他一些方法。请看下面的帖子。顺便说一句,戈德史密斯公司的马特?@Pavan:请记住,答案出现的顺序可能会受到投票、选择哪个答案(如果有的话)以及我们对答案的排序方式不同的事实的影响。而且,顺便说一句,可能不会,除非你认为你是在一个姓戈德史密斯的人家里遇见我的……好吧。我一定会记住这一点。谢谢你的提醒。而且,我上大学的朋友也和你同名我以为你是他Lolyp那是个理想的解决方案。这样就不会重新加载任何内容。这条路太棒了。这背后的独创性。让我想起了facebook的工作方式。更新状态,然后一切都被推下:D brilliant我告诉你brilliant loljQuery=javascript。正如几次所说的那样,第
Welcome <?php echo $_GET["fname"];?>.<br />
You are <?php echo $_GET["age"]; ?> years old!