2011-04-29 43 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 
^^^^ 

您需要删除它们才能正常启动会话!