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

时间:2012-01-09 21:19:37

标签: php html

我想在复选框中发布数据,就像

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

如果我这样,只有一个键值对保留在我的$_POST数组中。

如果我将photoids[]数组留空,(不回显$foreignid)所有键值对都保留在$_POST数组中,但是我没有访问权限到我在代码中需要的$foreignid变量。

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

2 个答案:

答案 0 :(得分:1)

使用此:

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

然后解析以$_POST开头的photoids数组中的键以获取foreignid。

或者使用它:

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

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

当然,假设下划线'_'不会出现在foreignid或id。

您可以使用以下方法解析名称或值:

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

$arr[0]将包含123,$arr[1]将包含987。

答案 1 :(得分:0)

也许是这样的:

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