Ben bir değişken var_dump var ve boş

3 Cevap

Ben bu değişken boş geçiyor nedenlerini bilmek istiyorum.

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

Sen nasıl gibi cart.php o değerler bulunuyor ayıkladıktan sonra 's değerini yazdırabilirsiniz $ Ürünü [' name '] görebilirsiniz

değerlerini ayıklar

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

Şimdi foreach döngüsü altında nasıl bir zamanlar Ürün ad baskı yankı ..?

3 Cevap

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

veya $aDoor ve $variety yapabileceğini onların diğer değerleri ile ürün isimlerini ilişkilendirmek istiyorsanız:

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

EDIT:

Ben bütün isimleri $ productname dizide aynı olduğu anlamına Yorumlarınızı alabilir, o zaman yerine bunu yapabilirsiniz:

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

Ama döngü içinde ürün adının her değerini görmek istiyorsanız:

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

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

Ayrıca, i PHP ile bu kod satırı yankılanan görmüyorum:

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

Bu yukarıdaki satırda değeri göstermek için değil nasıl bu durumda:

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

yerine php etiketleri kaydırmak gerekir:

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

Ben sorularınızı başka belirtildiği gibi, bir dizide split () kullanamazsınız. Bunu adlandırma bir dizi olarak $ _POST ['fiyat'] tedavi PHP zorluyorlar "fiyat []" formdaki. Bir dizide böldüğünüzde:

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

Eğer aşağıdaki ile sonuna kadar:

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

Aşağıdaki yapmak zorunda olacak:

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

Ayrıca çekimi cript bir $ ürün değişken yaratmak değil. Bir $ productname dizi oluştururken, ancak $ productname $ ürün olarak aynı değildir ['name']