2010-09-30 110 views
0

我正在尝试编写一些HTML代码,以便在用户向表单提交输入后在当前页面上创建一个表格。也就是说,代替将值输入到表单中,单击提交,并将其重定向到具有计算输出值的新页面,我希望输出值显示在当前页面的底部。这样,用户输入保持不变,唯一的变化是输出表被附加到当前页面的底部。这里有一个如何我会非常喜欢的页面工作的例子:HTML:更新页面与重定向到用户输入后的新页面

http://amort.appspot.com/

任何帮助将是非常赞赏。谢谢!

+0

你有没有考虑过你提到和示例网页上做一个“查看源文件”只是复制他们的技术? – JohnFx 2010-09-30 02:48:33

+0

这是一个梦幻般的想法。这也是我以前做的事情:D好老的VIEW SOURCE技巧。唯一的问题是它不会显示任何服务器端编译。所有这些都将通过提供给客户端计算机的值进行处理。所以当数据被提供给我们时,所有的事情都已经被处理了,所以我们无法看到他们是如何做到的,但是看到我们返回的是什么值。 – Pavan 2010-09-30 02:57:18

回答

0

你需要使用javascript才能做到这一点。如果您提供了页面的当前代码和您希望完成的具体目标,那么我可以给出一个示例脚本,但是如果您自己编写代码,那么只需查看javascript教程即可。

+0

我是唯一一个认为OP想要提交表单而不刷新页面的人,在这种情况下,他肯定需要JS通过AJAX提交表单? – 2010-09-30 02:58:54

+0

@FreekOne:不...这是我建议的三种方法之一... – GreenMatt 2010-09-30 03:12:01

+0

OP说他不希望页面“刷新”。这意味着他不希望浏览器发送新的HTTP头。他想要AJAX。 – stevendesu 2010-09-30 13:50:41

1

你需要你的表单动作指向同一页面。可以说你的网页的网址是

http://example.com/page.php比你需要将你的动作指向同一页面。

<form action='http://example.com/page.php'>
,有你的窗体中的隐藏字段说
<input type='hidden' name='formSubmitted' value='1' >
当这种形式提交给自己,你可以检查是否隐藏字段通过get参数的值。

获得该值后,您可以进行条件检查以显示表格。但是,你需要使用服务器端语言,如jsp或php。

另一种方法是你不要提交你的表格。但是当你点击提交查询按钮时,会调用JavaScript。这个JavaScript将从填充的表单框中读取值,并将显示在下表中。

0

你没有说你正在用什么来处理表单,但是你将无法用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()) 
+0

这就是对的。看看下面的帖子。 btw matt from goldsmiths? – Pavan 2010-09-30 02:59:55

+0

@Pavan:请记住,答案出现的顺序可能受到投票,选择哪个答案(如果有的话)以及我们没有按照相同方式排列答案这一事实的影响。而且,顺便说一句,可能不会,除非你认为你在一个姓Goldsmith的人的家中遇见了我...... – GreenMatt 2010-09-30 03:10:39

+0

好的。我一定会牢记这一点。谢谢你的提醒。而且,我的朋友出席大学的时候也和你的名字一样。 :D我以为你是他大声笑 – Pavan 2010-09-30 03:20:34

0

你可以很容易地用jQuery做到这一点。用.ajax()将表单提交到计算器页面,并让计算器将结果输出为JSON。然后,您可以将结果输出到底部表格中,而用户不必离开/重新加载页面。

希望这会有所帮助。

+0

是的,这是一个理想的解决方案。这样没有重新加载。这种方式太棒了。这背后的巧思。让我想起了Facebook的工作方式。更新状态和一切都被推下来:D辉煌我告诉你辉煌大声笑 – Pavan 2010-09-30 03:01:38

+0

jQuery = javascript。正如几次所说,提交表单后“不刷新页面”的唯一方法是使用javascript =)那么,或者像Flash这样的客户端插件。 – stevendesu 2010-09-30 13:52:33

1

您可以在您的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