gpt4 book ai didi

php - 如何在 PHP 中发布关联数组

转载 作者:技术小花猫 更新时间:2023-10-29 12:45:54 26 4
gpt4 key购买 nike

我有以下表格:

<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">

http://codepad.org/DtgoZGe7

问题是 $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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com