2011-04-29 63 views
0

我工作的大學鍛鍊一下購物車,我轉換的POST值到一個數組,但是當我贊同這些數組值我得到以下信息:PHP:數組=>未定義指數

Notice: Undefined index: item in line 40 
Notice: Undefined index: quantity in line 40 

這裏的第40行:

echo "1. ".$_SESSION['lista']['item']." ".$_SESSION['lista']['quantity']." unidades".", ".$_SESSION['lista']['price']." CRC."; 

以下是完整的腳本:

<?php 

session_start(); 

//Obtengo la lista 
$lista[]= $_SESSION['lista']; 

//Guardo un valor en la lista 
/* 
$articulo= $_POST['articulo']; 
$cantidad= $_POST['cantidad']; 
$codigo= $_POST['codigo']; 
*/ 

//Listado 
$articulos = array(

    'Papaya' => 500, 'Banano' => 50, 'Mango' => 150, 
    'Leche' => 500, 'Cafe' => 1200, 'Mantequilla' => 300, 
    'Pan' => 450, 'Jugo' => 780, 'Mani' => 800, 
    'Yogurt' => 450, 'Cerveza' => 550, 'Vino' => 2500, 
); 

$_SESSION['lista'] = array(
'item' => ($_POST['articulo']), 
'quantity' => ($_POST['cantidad']), 
'code' => ($_POST['codigo']), 
); 

//precio 
$precio = $articulos[($_SESSION['lista']['item'])] * $_SESSION['lista']['quantity']; 

$_SESSION['lista'] = array('price' => $precio,); 


//listado 
echo "<b>LISTADO DE COMPRA</b></br>"; 


echo "1. ".$_SESSION['lista']['item']." ".$_SESSION['lista']['quantity']." unidades".", ".$_SESSION['lista']['price']." CRC."; 

/*foreach($_SESSION['lista'] as $key => $item) { 
    echo $key, '. ', $item['item'], ' ', $item['quantity'], ' units'; 
} 
*/ 

//Regreso a la lista 
$_SESSION['lista'] = $lista; 



var_dump($_SESSION); $lista; 

echo "</br> <a href='index.html'>Volver al indice</a>"; 

//SESSION_DESTROY = Elimina todo 

//Imprimo lo que hay en session 
var_dump($_SESSION); 

?> 

回答

0

這意味着$ _SESSION [ 「LISTA」] ARR ay沒有「item」或「quantity」的元素。

要查看$ _SESSION)的全部內容,你可以使用的print_r(:

print_r($_SESSION); 

注意,在HTML這不會好看,你需要使用「查看源文件」在您的瀏覽器以良好的形式看到它。

+0

你是對的,該項目不在陣列上,也沒有數量從我能告訴。我不明白我做錯了什麼! – 2011-04-29 21:10:24

0

在調用session_start之前,你輸入空白內容的做法是錯誤的,請參閱包含<?php的第一行,你會注意到標籤前有幾個空格。

<?php 
^^^^ 

您需要刪除它們才能正常啓動會話!