PHP表单从id而不是值发送值

时间:2011-03-26 06:52:39

标签: php forms dom request

我通常做的事情就是这样一个带有隐藏字段的表格:

   <input type="hidden" name="someName" value="someVal" />

我能够通过像

这样简单的东西获得价值
$someVar = $_REQUEST['someVal'];

但是现在我试图通过像这样的

发送DOM元素id中的所有值
<input type="hidden" name="someNewName" id="element_id_name" />

我这样做是否正确?甚至可以这样做吗?还是我离开了? 如何从最后一行获取值?或者如何以正确的方式发送数据以进行请求?

谢谢, 亚历

4 个答案:

答案 0 :(得分:4)

您无法通过ID检索php中的数据,因为它可以在名称上运行。所以您需要更改

PHP

<form method="POST" action="nextpage.php" name="myform" id="myform">
<input type="text" id="rout_markers"  name="rout_markers"/>
<input type="hidden" name="someNewName" id="someNewName" value="" />
<input type="submit" id="send-btn"  class="button" value="SEND NOW" onclick="submitform()" />
</form>

的jQuery

$("form").bind('submit',function(e){
  e.preventDefault();
  var hiddenData=$("input[name=rout_markers]").val();
  // or var hiddenData=jQuery('#rout_markers').val(); 
  $("input[type=hidden][name=someNewName]").val(hiddenData);  
});

on

nextpage.php

以下方式检索数据

  

$ _ POST [ 'someNewName'];

更新

在提交按钮中设置onclick=submitform(),并指定nameid属性以形成并撰写此

的JavaScript

<script type="text/javascript">
function submitform()
{
  var hiddenData = document.getElementById('rout_markers').value;
  document.getElementById('someNewName').value = hiddenData;
  document.myform.submit();
}
</script>

答案 1 :(得分:2)

您只能接收具有name属性的输入,该属性将成为$_POST(或等效)数组的关键。

请使用$_POST(或$_GET)代替$_REQUEST,后者也会查看Cookie,而且可能会破坏您的期望。您应该关注Principle of Least Privilege

要将带有id的服务器发送到您的服务器,请为其指定一个唯一名称,或通过XHR将value属性发送到您的服务器。

答案 2 :(得分:1)

在HTTP协议中没有类似DOM的东西。

如果您想通过HTTP请求发送HTML表单,则必须使用value属性,这就是

答案 3 :(得分:-1)

在第一种情况下,你必须使用以下方法获取php中字段的值:

$someVar = $_REQUEST['someName'];

对于第二种情况,您可以使用以下方式获取php中的值:

$someNewVar = $_REQUEST['someNewName'];

在javascript中,您可以获得如下值:

var somenewvar = document.getElementById("element_id_name").value;