开发者

I have var_dump a variable and it is empty

开发者 https://www.devze.com 2022-12-19 21:32 出处:网络
I want to know the reasons why this variable is passing empty. <form action=\"cart.php\" method=\"POST\">

I want to know the reasons why this variable is passing empty.

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

Can you see $product['name'] how can I print the it's value after extracting it's values in cart.php as

extracts values

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;
} 

Now below the foreach loop how can I echo the print of productname once..?


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

or if you want to associate the product names with their other values in $aDoor and $variety you could do:

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

EDIT:

If I can take your comment to mean that all of the names are the same in the $productname array then you can do this instead:

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


Now below the foreach loop how can I echo the print of productname once..?

print_r ($productname);

But if you want to see each value of product name inside the loop:

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

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

Also, i don't see your echoing this line of code with php:

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

in which case this is not how to show value in above line:

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

instead you need to wrap it in php tags:

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


As I stated in another of your questions, you cannot use split() on an array. You're forcing PHP to treat $_POST['price'] as an array by naming it "price[]" in your form. WHen you split on an array:

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

you end up with the following:

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

You will have to do the following:

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

You're also not creating a $product variable in your extractions cript. You are creating a $productname array, but $productname is not the same as $product['name']

0

精彩评论

暂无评论...
验证码 换一张
取 消