我现在使用jquery .submit action(form)来POST数据。 JAVA中的普通POST操作不会传递标签/值键。对于以下(样本)形式我是如何做到的?我不想使用Ajax,因为我的表单也会上传文件字段,我知道如何只在简单的POST操作中处理它。
<body>
<form id="frmRequest" name="frmRequest" >
<div class="clearfix" id="idRequestDetails" >
<table width="809" border="0" id="tbl_data_1_1_1_1__" summary="Profile">
<tr>
<th width="156" scope="col"><label class="labelrequest" for="txtProfileName1__">Name</label>
</th>
<th width="74" scope="col"><label class="labelrequest" for="txtProfileUserID1__">User ID</label></th>
<th width="131" scope="col"><label class="labelrequest" for="txtSiteCost1__">Site Cost Centre</label></th>
<th width="182" scope="col"><label class="labelrequest" for="txtDetail1__">Additional Details</label></th>
</tr>
<tr>
<td><input type="text" name="txtProfileName1__" id="txtProfileName1__" tabindex="100" /></td>
<td><input name="txtProfileUserID1__" type="text" class="clearfix" id="txtProfileUserID1__" tabindex="110" size="8" /></td>
<td><input name="txtSiteCost1__" type="text" id="txtSiteCost1__" tabindex="220" size="8" /></td>
<td><textarea name="txtDetail1__" rows="1" id="txtDetail1__" tabindex="240"></textarea></td>
</tr>
</table>
</div>
</body>
尝试以下但不能正常工作
foreach ($_POST as $key => $value)
{
if($key === 'labels') {
// Decode JSON string to array
$value = json_decode($value, true);
}
if (!is_array($value))
{
$message .= "<br/>".$key." : ".$value;
}
else
{
foreach ($value as $itemvalue)
{
$message .= "<br/>".$value." : ".$itemvalue;
}
}
}
答案 0 :(得分:0)
在发送表单之前,您必须使用所需的信息构建输入。
以下是我在LABEL标签之间找到文字的示例。 创建隐藏的输入。 设置INPUT的名称。 设置INPUT的值,即JSON编码的标签值数组
$("form").submit(function(event) {
$labels = $(this).find("label");
$ret = [];
$.each($labels, function() {
$ret.push($(this).text());
});
$input = $("<input>").attr("type", "hidden").attr("name", "labels").val(JSON.stringify($ret));
$(this).append($input);
});
由于我将所有标签放入JSON对象,在foreach循环中,在第一次之前,你需要找到标签数据,将其解码为数组
像这样:
foreach ($_POST as $key => $value)
{
if($key === 'labels') {
// Decode JSON string to array
$value = json_decode($value, true);
}
if (!is_array($value))
{
$message .= "<br/>".$key." : ".$value;
}
else
{
foreach ($value as $itemvalue)
{
$message .= "<br/>".$value." : ".$itemvalue;
}
}
}
以防查看JSON functions和您的PHP版