我正在尝试编写一些HTML代码,以便在用户向表单提交输入后在当前页面上创建一个表格。也就是说,代替将值输入到表单中,单击提交,并将其重定向到具有计算输出值的新页面,我希望输出值显示在当前页面的底部。这样,用户输入保持不变,唯一的变化是输出表被附加到当前页面的底部。这里有一个如何我会非常喜欢的页面工作的例子:HTML:更新页面与重定向到用户输入后的新页面
任何帮助将是非常赞赏。谢谢!
我正在尝试编写一些HTML代码,以便在用户向表单提交输入后在当前页面上创建一个表格。也就是说,代替将值输入到表单中,单击提交,并将其重定向到具有计算输出值的新页面,我希望输出值显示在当前页面的底部。这样,用户输入保持不变,唯一的变化是输出表被附加到当前页面的底部。这里有一个如何我会非常喜欢的页面工作的例子:HTML:更新页面与重定向到用户输入后的新页面
任何帮助将是非常赞赏。谢谢!
你需要使用javascript才能做到这一点。如果您提供了页面的当前代码和您希望完成的具体目标,那么我可以给出一个示例脚本,但是如果您自己编写代码,那么只需查看javascript教程即可。
我是唯一一个认为OP想要提交表单而不刷新页面的人,在这种情况下,他肯定需要JS通过AJAX提交表单? – 2010-09-30 02:58:54
@FreekOne:不...这是我建议的三种方法之一... – GreenMatt 2010-09-30 03:12:01
OP说他不希望页面“刷新”。这意味着他不希望浏览器发送新的HTTP头。他想要AJAX。 – stevendesu 2010-09-30 13:50:41
你需要你的表单动作指向同一页面。可以说你的网页的网址是
http://example.com/page.php比你需要将你的动作指向同一页面。
<form action='http://example.com/page.php'>,有你的窗体中的隐藏字段说
<input type='hidden' name='formSubmitted' value='1' >当这种形式提交给自己,你可以检查是否隐藏字段通过get参数的值。
获得该值后,您可以进行条件检查以显示表格。但是,你需要使用服务器端语言,如jsp或php。
另一种方法是你不要提交你的表格。但是当你点击提交查询按钮时,会调用JavaScript。这个JavaScript将从填充的表单框中读取值,并将显示在下表中。
你没有说你正在用什么来处理表单,但是你将无法用HTML处理它。所以你需要用另一种语言进行某种处理。
正如其他人所说的,你可以用JavaScript来做到这一点。 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())
这就是对的。看看下面的帖子。 btw matt from goldsmiths? – Pavan 2010-09-30 02:59:55
@Pavan:请记住,答案出现的顺序可能受到投票,选择哪个答案(如果有的话)以及我们没有按照相同方式排列答案这一事实的影响。而且,顺便说一句,可能不会,除非你认为你在一个姓Goldsmith的人的家中遇见了我...... – GreenMatt 2010-09-30 03:10:39
好的。我一定会牢记这一点。谢谢你的提醒。而且,我的朋友出席大学的时候也和你的名字一样。 :D我以为你是他大声笑 – Pavan 2010-09-30 03:20:34
你可以很容易地用jQuery做到这一点。用.ajax()
将表单提交到计算器页面,并让计算器将结果输出为JSON。然后,您可以将结果输出到底部表格中,而用户不必离开/重新加载页面。
希望这会有所帮助。
是的,这是一个理想的解决方案。这样没有重新加载。这种方式太棒了。这背后的巧思。让我想起了Facebook的工作方式。更新状态和一切都被推下来:D辉煌我告诉你辉煌大声笑 – Pavan 2010-09-30 03:01:38
jQuery = javascript。正如几次所说,提交表单后“不刷新页面”的唯一方法是使用javascript =)那么,或者像Flash这样的客户端插件。 – stevendesu 2010-09-30 13:52:33
您可以在您的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可能看起来像这样: http://www.w3schools.com/welcome.php?fname=Peter&age=37
的“的welcome.php”的文件,现在可以使用$ _GET功能收集表单数据(表单字段的名称将自动成为$ _GET数组中的键): 然后创建一个表并添加行是正确的地方。所以这将成为你的表格,例如你将在HTML文件中写入的内容如此简单。
Welcome <?php echo $_GET["fname"];?>.<br />
You are <?php echo $_GET["age"]; ?> years old!
希望有帮助。 让我知道如果它。由于
PK
你有没有考虑过你提到和示例网页上做一个“查看源文件”只是复制他们的技术? – JohnFx 2010-09-30 02:48:33
这是一个梦幻般的想法。这也是我以前做的事情:D好老的VIEW SOURCE技巧。唯一的问题是它不会显示任何服务器端编译。所有这些都将通过提供给客户端计算机的值进行处理。所以当数据被提供给我们时,所有的事情都已经被处理了,所以我们无法看到他们是如何做到的,但是看到我们返回的是什么值。 – Pavan 2010-09-30 02:57:18