PHP爆炸的变量设置为1个字符?

时间:2016-11-10 10:29:12

标签: php explode

我试图通过Checkbox发布3个变量。

如果用户勾选每个产品的复选框,我会尝试发送3个变量:

<input type="checkbox" name="product[]" value="'. $rowAttr["reference"] .'-'. $rowAttr["price"] .'-'. $rowProd["unity"] .'">

变量肯定已设置,因为我已将它们全部打印到用户可以看到他们选择的产品的页面。但是,当他们提交表单时,复选框中的变量设置为1个字符?哪里出错了?

$selected = explode('-', $product);
$reference = $selected[0];
$price = $selected[1];
$unity = $selected[2];

echo '<table class="table table-striped">';
    echo '<th>Product Reference</th><th>Price</th><th>Unit</th>';
        if(isset($_POST['product'])) {
            foreach($_POST['product'] as $product) {
                print '<tr>';
                    print '<td>'. $product['reference'] .'</td>';
                    print '<td>'. $product['price'] .'</td>';
                    print '<td>'. $product['unity'] .'</td>';
                print '</tr>';
            }
        }
echo '</table>';

1 个答案:

答案 0 :(得分:1)

尝试运行以下代码

   $product = $_POST['product'];
   echo "<pre>";
   var_dump($product);
   echo "</pre>";

我认为你的数组看起来像这样

  array(3){
   [0]=>array(3) {[0]=>"some value",[1]=>"some value",[2]=>"some value",}

   [1]=>array(3) {[0]=>"some value",[1]=>"some value",[2]=>"some value",}

   [2]=>array(3) {[0]=>"some value",[1]=>"some value",[2]=>"some value",}
   }

这样做或者致电$product[0][1], $product[0][2], $product[0][3] 代替。