隐藏字段中的多维数组

时间:2016-02-19 14:02:27

标签: php sql arrays

我有一个表单,我试图通过隐藏字段传递值。目前我传递了一个ID和一个数量,它们被分成两个独立的阵列发送。我想在一个隐藏字段中将这两个数据发送到同一个多维数组中,这可能吗?

这是我的PHP代码:

select distinct ?property ?label {
  { dbr:Suez ?property ?o }
  union
  { ?s ?property dbr:Suez }

  optional { 
    ?property rdfs:label ?label .
    filter langMatches(lang(?label), 'en')
  }
}

3 个答案:

答案 0 :(得分:1)

一个简单的解决方案是序列化数组,然后回显隐藏字段

<textarea name="name" style="display:none;"/>
<?php echo serialize($data); ?>
</textarea>

稍后撤消

unserialize($data);

在反序列化之后,你的阵列就像之前一样回来了

答案 1 :(得分:1)

我会通过隐藏字段将它们作为数组发送,然后使用MultipleIterator类将它们分组到各自的数组中。

可能是这样的。

$iterator = new MultipleIterator ();
$iterator->attachIterator (new ArrayIterator ($_POST['sweetids']));
$iterator->attachIterator (new ArrayIterator ($_POST['quantites']));
$iterator->attachIterator (new ArrayIterator ($_POST['stock']));

foreach ($iterator as $item)
{
    $id = $item[0];

    $quantity = (int)$item[1];

    $stock = (int)$item[2];

    $new_stock =  $stock - $quantity;

    $database->update_stock($id, $new_stock);

}

答案 2 :(得分:0)

您现在为每个糖果添加2个输入,最好创建一个甜蜜的集合,然后将其用作输入的值。

以下几行。

$sweetCollection = array();

foreach ($query as $single_query) {
   $sweet = array();
   // Set values
   $sweet['id'] = $single_query['Sweet_ID'];
   $sweet['level'] = $database->get_stock($sweet['id']);
   $sweet['quantity'] =  (int)$sweet['level'][0]['Quantity'];
   // Add to array 
   array_push($sweetCollection, $sweet);
   echo $single_query['Description']; ?> x <?php echo $_SESSION['cart'][$id]['quantity'] . '<a href="?idToRemove=' . $id . '&action=remove"> Remove </a>' . '</br>'; ?>

}

现在,当我们想要添加输入字段时,我们使用JSON执行以下操作:

   <input type="hidden" value="<?php echo json_encode($sweetCollection); ?>" name="sweetCollection"/>

我不确定你为什么需要这个,因为你可以照常使用$_Input['name'] vars。此外,JSON字符串可能变得非常大并且会相当奇怪。