我有var_dump一个变量,它是空的

时间:2010-02-13 07:03:40

标签: php

我想知道此变量传递为空的原因。

<form action="cart.php" method="POST">
<input style="width:10px; margin-left:9px; " name="price[]" type="checkbox" value="' . $variety['price'].'_'. $variety['variety']. '_'. $product['name'] . ' "  /></form>

你能看到$ product ['name']如何在cart.php中提取它的值后打印它的值

提取值

list($aDoor, $variety,$productname) = split('_', $_POST['price']);
$aDoor = array();
$variety = array();
$productname= array();

foreach ($_POST['price'] as $p)
{
  list($a, $b,$c) = explode('_', $p);
  $aDoor[] = $a;
  $variety[] = $b;
  $productname[] = $c;
} 

现在在foreach循环下面,我怎么能回显一次productname的打印??

3 个答案:

答案 0 :(得分:1)

foreach($productname as $name) {
  echo $name . '<br />';
}

或者如果您想将产品名称与$aDoor$variety中的其他值相关联,则可以执行以下操作:

foreach($productname as $index => $name) {
  echo 'Name: ' . $name . '<br />';
  echo 'Variety: ' . $variety[$index] . '<br />';
  echo 'Price: ' . $aDoor[$index] . '<br />';
}

修改

如果我可以将您的评论意味着$ productname数组中的所有名称都相同,那么您可以这样做:

if(count($productname) > 0) {
  echo 'Product Name: ' . $productname[0] . '<br />';
  foreach($variety as $index => $name) {
    echo $name . ': $' . $aDoor[$index] . '<br />';
  }
}

答案 1 :(得分:0)

  

现在在foreach循环下方,我该怎么办?   回显一下productname的印刷品。?

print_r ($productname);

但是如果你想在循环中看到产品名称的每个值:

foreach ($_POST['price'] as $p)
{
  list($a, $b,$c) = explode('_', $p);
  $aDoor[] = $a;
  $variety[] = $b;
  $productname[] = $c;

  echo $c . '<br />'; // show product name
} 

另外,我没有看到你用php回复这行代码:

<input style="width:10px; margin-left:9px; " name="price[]" type="checkbox" value="' . $variety['price'].'_'. $variety['variety']. '_'. $product['name'] . ' "  /></form>

在这种情况下,这不是如何在上面的行中显示值:

value="' . $variety['price'].'_'. $variety['variety']. '_'. $product['name'] . ' "

而你需要将它包装在php标签中:

value="<?=$variety['price'].'_'. $variety['variety']. '_'. $product['name']?>"

答案 2 :(得分:0)

正如我在另一个问题中所述,你不能在数组上使用split()。你迫使PHP将$ _POST ['price']作为一个数组,在你的表单中命名为“price []”。你在阵列上分裂的时候:

$arr = array('a', 'b', 'c');
list($a, $b, $c) = split($arr);

您最终得到以下信息:

$a = 'Array';
$b = NULL;
$c = NULL;

您必须执行以下操作:

list($aDoor, $variety,$productname) = explode('_', $_POST['price'][0]);
                                                                  ^^^   (note the array notation)

您还没有在提取条件中创建$ product变量。您正在创建$ productname数组,但$ productname与$ product ['name']

不同