在html复选框数组中发布和处理数据


Posting and processing data in html checkbox arrays

我想像一样在复选框中发布数据

<?php foreach($data as $foreignid => $id): ?>
<input type="checkbox" 
       name="photoids[<?php echo $foreignid; ?>]" 
       value="<?php echo $id;?>"
                       />

如果采用这种方式,则在$_POST数组中只剩下一个键值对。

如果photoids[]数组为空,(不回显$foreignid)所有键值对都保留在$_POST数组中,但我无法访问代码中所需的$foreignid变量。

解决此问题的最佳解决方法是什么?

使用此:

<?php foreach($data as $foreignid => $id): ?>
<input type="checkbox" 
       name="photoids_<?php echo $foreignid; ?>" 
       value="<?php echo $id;?>"
                   />

然后解析以photoids开头的$_POST数组中的密钥以获得foreigned。

或者使用这个:

<?php foreach($data as $foreignid => $id): ?>
<input type="checkbox" 
       name="photoids[]" 
       value="<?php echo $foreignid . '_' . $id;?>"
                   />

然后解析值以获得foreignid和id。

当然,假设下划线"_"不会出现在外文或id中。

您可以使用解析名称或值

$src = '123_987';
$arr = explode('_', $src);

CCD_ 8将包含123并且CCD_ 9将包含987。

也许是这样的:

<?php foreach($data as $foreignid => $id): ?>
<input type="checkbox" 
name="photoids[<?php echo $foreignid; ?>]" 
value="<?php echo $foreignid."/".$id."/".$data;?>"
/>