如何通过POST发送HTML元素的信息?

时间:2012-05-30 13:17:29

标签: php html post

我想通过POST将HTML元素的属性作为数据发送,例如元素是否可见?

6 个答案:

答案 0 :(得分:2)

您无法单独使用PHP和HTML,因为HTML表单只会发布表单输入的名称。您需要添加一些JavaScript,在提交表单时,它将迭代其所有输入并修改其值以包含属性值。

实施例

yourform.onbeforesubmit = function() {
  // Loop over form elements and append -visible or -hidden to its value based on CSS style
  // jQuery selectors like .is(":visisble") would help a lot here.
  // This is just a basic example though - it would require an explicit visibility CSS rule on each 
  // input element...
  for (var i=0; i<yourform.elements.length; i++) {
    yourform.elements[i].value = += "-" + yourform.elements[i].style.visibility;
  }
}

另一种方法不是修改输入本身的值,而是为每个可见的用户输入保留隐藏的输入,并将属性设置为隐藏输入的值而不是可见输入。

答案 1 :(得分:1)

你不能用PHP做到这一点。您需要使用Javascript来确定此信息,然后发送Ajax请求或将此信息添加到现有表单。

详细说明:PHP执行服务器端然后发送到客户端(浏览器)。服务器不知道浏览器中HTML元素的状态。

据我所知,你有一张提交的表格?因此,添加一个在提交表单之前调用的javascript(表单的onsubmit属性),并让它读出元素的状态(可见,隐藏,...),并将此信息设置为一些隐藏的表单字段。

确保在提交表单之前调用的javascript返回true,否则操作将被取消。

答案 2 :(得分:1)

在ajax中。 试试Prototype Framework,它真的很容易使用! http://prototypejs.org/api/ajax/request

答案 3 :(得分:0)

如果你想这样做,我想你必须创建一些隐藏的字段和javascript,根据你的元素属性填充信息。据我所知,没有其他办法。

答案 4 :(得分:0)

您必须首先定义数据定义标准:您要存储什么,以什么名称存储。

然后,imho你必须序列化结果并通过POST发送它,最后在服务器上反序列化一次。

使用JSON序列化来实现有效的处理方式。

答案 5 :(得分:0)

使用PHP包含隐藏的输入,如下所示:

<input type="hidden" id="hidden1" name="hidden1" value="<?php if(condition) echo "default"; else echo "default";?>">

这个默认值可以在页面加载期间由PHP设置,用于将额外的隐藏数据从一个页面加载传输到另一个页面加载。但也可以在页面加载后通过javascript修改:

<script type="text/javascript">
document.getElementById("hidden1").value="true";
</script>
  

注意: PHP只能在下一次加载页面时更改任何隐藏或非隐藏元素的值。它无法控制它发送到浏览器的HTML。这就是您需要Javascript(客户端脚本)的原因。