通过常规网页链接传递变量和数据?

时间:2009-03-21 07:36:20

标签: php javascript html

我正在使用一个页面,我在点击链接时尝试提交数据。我已经知道如何使用javascript按钮使用POST和GET执行此操作,但是当我使用HTML链接时如何获得相同的效果?

5 个答案:

答案 0 :(得分:8)

如果你有一个普通链接,你可以在链接上传递它们作为查询参数(这是一个GET操作)

<a href="/myapp/somecontroller.php?id=17&name=fred">Save</a>

如果您有一个没有javascript的纯HTML表单来处理按钮按下,您可以将内容放入隐藏字段

<form name="theform" method="post" action="/myapp/somecontroller.php">
<input type="hidden" name="id" value="17">
<input type="hidden" name="name" value="fred">
 ...
</form>

这不需要任何javascript。

答案 1 :(得分:2)

您可以使用 GET POST 将数据传递到其他页面。

请注意,在传递数据时,您必须考虑其目的。如果传递数据不会导致应用程序发生任何变化,则应使用 GET 。否则,您应该使用 POST

例如,如果您有用户管理页面。当您只显示用户详细信息时,您应该使用 GET ,因为它没有进行任何类型的更改:http://www.mywebsite.com/user.php?user=10

但是,如果用户更改了详细信息,则应使用 POST ,因为它正在更改用户的数据:

<form name="userDetails" method="post" action="saveChanges.php">
   <input type="text" name="firstName" value="" />
   <input type="submit" value="save"/>
</form>

或者,您也可以使用 Cookie 。您可以将数据保存到可在整个Web应用程序中使用的cookie中。

答案 2 :(得分:1)

我不清楚你在问什么,但这听起来像是这样:

您知道如何使用POST和GET(即HTML表单)在页面之间传递数据。你正在使用Javascript按钮。

对“Javascript按钮”有几种解释:

你在做什么

(1) <input type="submit" onclick="doSomething();" value="Save my data" />
(2) <input type="button" onclick="doSomething();" value="Save my data"  />
(3) <button onclick="doSomething();">Save my data</button>

或类似

(4) <input type="submit" value="Save my data" />

1,2和3是使用javascript使按钮执行操作的示例。 (“Javascript按钮”)。 4是标准的HTML FORM按钮 - Javascript未被使用;标准的HTML表单行为将导致按钮将数据提交到FORM标记中指定的任何页面(类似<form method="get" action="datacollection.php">)。

现在,需要了解的是POST / GET是在网页之间 - 浏览器和服务器之间发送数据的方式。发送数据的过程可以通过HTML(<a>链接),Javascript(调用URL或触发FORM提交的函数)或者<input type="submit" />等FORM元素触发。 / p>

我不打算任何冒犯,但你提出问题的方式让我觉得你不是想弄清楚不同的格式来将数据传输到接收页面(正如其他海报所讨论的那样),并弄清楚如何解析cookie值或迭代表单字段以创建查询字符串将是非常具有挑战性的。

所以这里有一些选择:

  1. 如果您的表单已经使用Javascript提交表单(上面的案例1,2或3),您只需将相同的onclick部分添加到HTML链接:

    保存我的数据
  2. 函数submitMyForm可能如下所示:

    function submitMyForm() {
      // Get the form object -- you can also do this with the document.form array
      var myForm = document.getElementById( 'userdata' );
      // use the submit method of the form object
      myForm.submit();
    
    }
    

    总而言之,您将向常规HTML锚链接添加javascript行为(“事件处理程序”)。一个注意事项 - 一般来说,用户希望规则“链接去地方,按钮做事”。这不是一个硬性规则,但是当按钮用于提交表单数据之类的东西时,人们通常会更开心。

答案 3 :(得分:0)

您可以添加查询字符串:如下所示:

<a href="page.php?id=1&display=asdf">text</a>

这样,您可以将其作为查询字符串变量。

答案 4 :(得分:0)

如果要将数据值从一个普通的.html页面传递到另一个页面,可以使用以下技术:

  • 将数据值存储在cookie中
  • 将值存储在可重写属性window.name中
  • 将值作为查询字符串附加到目标页面的URL
  • 将值存储在另一帧的JavaScript变量中(如果使用框架)

    上述技术的一个很好的演示在JavaScript FAQ集合中 - 请参阅 Passing parameters to a page