2012-03-24 42 views
2

在我的HTML我有帖子在PHP和ASP.net

<input type="hidden" name="Code_value" value="xyz"> 
<input type="hidden" name="Code_value" value="abc"> 
<input type="hidden" name="Code_value" value="rst">` 

当我提交我把它在我的ASp.net代码,我把它们作为

string Items = Request.Form["Code_value"]; 

物品的价值是xyz,abc,rst

在PHP $Items=$_POST['Code_value'];

物品的价值是rst

它发生在PHP中的最后一个值是不是因为有多个Code_value项目如果是这样,为什么不正是在Asp.net服用刚刚过去的值

回答

1

这简直是下降到PHP方式和ASP.NET读取请求。如果ASP.NET多次遇到相同的表单字段名称,它会附加这些值。另一方面,PHP会使用当前值覆盖之前的值,因此您只能获取$ _GET或$ _POST中的最后一个值。

您有两种选择。

第一个是简单地告诉PHP将所讨论的字段视为一个数组。这是最简单的方法,因为您只需在字段名称末尾加上方括号即可。

<input name="field[]" value="1" /> 
<input name="field[]" value="2" /> 
<input name="field[]" value="3" /> 

如果你也想给数组中的每个元素一个特定的键,

<input name="field[foo]" value="1" /> 
<input name="field[bar]" value="2" /> 
<input name="field[baz]" value="3" /> 

另一种方法是读取脚本的原始输入并自行处理。

$postdata = file_get_contents("php://input"); 

由于您必须自己解析所有输入数据,因此此方法要复杂得多。它也有limitations

因此,我建议您使用第一种方法。

1

为什么不采取只是在最后一个值Asp.net

Asp.net这种方式工作