作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有以下表格:
<form action="options.php" method="post">
<input type="text" name="deptid" id="deptid" />
<input type="text" name="deptname" id="deptname" />
<input type="submit" name="submit" id="submit" value="save" />
</form>
编辑
是否可以将这两个值传递到一个关联数组BEFORE 提交?我想以这种形式传递它:
array('deptid'=>'deptname')
我需要这个因为我避免修改目标 php 文件 (options.php) 的脚本
谢谢。
最佳答案
这是一种使用纯 HTML 的方法,它可以让您几乎准确地到达您想去的地方,并且只使用 HTML:
<form action="options.php" method="post">
<input type="text" name="options[deptid]" id="deptid" />
<input type="text" name="options[deptname]" id="deptname" />
<input type="submit" name="submit" id="submit" value="save" />
</form>
哪个会用 PHP 给你:
$post_options = array(
'options' => array(
'deptid '=> '[that input element value]',
'deptname' => '[that input element value]'
)
);
然后您可以(包括清理)像这样访问:
$post_options = array('options');
if (is_numeric($post_options['deptid'] && $post_options['deptid'] > 0) {
// Do whatever
}
if (is_string($post_options['deptname'] && strlen($post_options['deptname'] > 2)) {
// Do whatever
}
编辑
或者...您想在input name
属性中引用deptid
并使用它来修改部门名称的行?这似乎表明是这样的:
<?php
$deptid = 1;
$deptname = 'Department of Silly Walks';
?><input type="hidden" name="options[<?=$deptid?>]" value="<?=$deptname?>">
哪些输出:
<input type="hidden" name="options[1]" value="Department of Silly Walks">
问题是 $deptid
值变成了一个实际上没有直接命名或引用的值。我认为由于这种从服务器到客户端再返回的值的抽象,实现起来可能存在问题,所以我会推荐我在顶部的内容。这在实践中没有太大区别,但或多或少是 self 记录的。
请注意,如果您想序列化部门列表,则需要一些技巧。例如,您可以试试这个:
<input type="text" name="options[][deptid]" id="deptid" />
<input type="text" name="options[][deptname]" id="deptname" />
这将为每个输入
添加一个索引值。然而……他们不会直接关联。因此,您会得到每个键的两个零索引数组。
在这种情况下,我建议使用 Javascript 添加每个新部门的 input
元素,这样您就可以为每个元素指定一个数字,例如:
<input type="text" name="options[0][deptid]" id="deptid" />
<input type="text" name="options[0][deptname]" id="deptname" />
<br/>
<input type="text" name="options[1][deptid]" id="deptid" />
<input type="text" name="options[1][deptname]" id="deptname" />
<br/>
<input type="text" name="options[2][deptid]" id="deptid" />
<input type="text" name="options[2][deptname]" id="deptname" />
<br/>
<input type="text" name="options[3][deptid]" id="deptid" />
<input type="text" name="options[3][deptname]" id="deptname" />
或者执行老派的 POSTBACK 方法并使用 PHP 计算 $POST['options']
并“手动”添加具有相同索引的新“行”输入。这是一个常见的陷阱,所以如果这是您在某个时候所追求的,您只需要考虑一下。
关于php - 如何在 PHP 中发布关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14050812/
我是一名优秀的程序员,十分优秀!