Mat*_*hew 0 html forms arrays delphi post
我正在使用delphi编写的Web应用程序,并且无法从值数组中获取值.表单看起来类似于:
<form method="post">
<input type="hidden" name="keyword[]" value="1"/>
<input type="hidden" name="keyword[]" value="2"/>
<input type="hidden" name="keyword[]" value="3"/>
<input type="submit" value="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
如果这是一个具有唯一名称的单个输入,我可以使用以下方法提取数据:
var cKeyword : String ;
cKeyword := Request.ContentFields.Values['keyword'] ;
Run Code Online (Sandbox Code Playgroud)
我正在寻找这样的东西:
var aKeywords : Array of String ;
aKeywords := Request.ContentFields.Values['keyword[]'] ;
Run Code Online (Sandbox Code Playgroud)
在PHP中你可以使用$aKeywords = $_POST['keyword'],我希望有一种方法可以在delphi中执行此操作.
提前感谢您提供的任何帮助.
该ContentFields属性只是一个普通的TStrings对象,因此它的Values属性总是返回一个string.当HTML表单具有多个具有相同名称的成功控件时,它们将全部返回,一个接一个地返回.这意味着该TStrings对象将具有多个具有相同Names值的条目.您需要遍历所有条目以查找具有匹配名称的条目.
这是一个可能有用的功能.
function GetArrayFieldValues(ContentFields: TStrings; const FieldName: string): TStringDynArray;
var
i: Integer;
Values: TStrings;
begin
Values := TStringList.Create;
try
for i := 0 to Pred(ContentFields.Count) do
if ContentFields.Names[i] = FieldName then
Values.Add(ContentFields.ValueFromIndex(i));
Result := Values.ToStringArray;
finally
Values.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
像这样称呼它:
aKeywords := GetArrayFieldValues(Request.ContentFields, 'keyword[]');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
890 次 |
| 最近记录: |