pertama karena kamu memang tidak memproses form dengan benar (mungkin benar jika setting php.ini register_global=1), pelajari cara yang benar di
http://www.myphptutorials.com/tutorials/34/cara-memproses-html-form-yang-benar. Kedua 0, "0", "" itu sama dengan empty, kualitas nilanya mulai dari 0, jadi jika kamu cek dengan empty($_POST) datanya akan dikatakan tidak benar.
<html>
<head>
<title>Array</title>
</head>
<body>
<?php
$Harga=array
("Jeruk" => array(15000,12500,10000),
"Apel" => array(20000,15000,13000),
"Mangga" => array(18000,14000,11000));
print("<Table border=1>");
print("<th colspan=4 align=center>DAFTAR
HARGA BUAH/KG</th>");
print("<tr><td rowspan=2>Buah</td><td
colspan=3 align=center>Kualitas</td></tr>");
print("<tr><td align=center>1</td><td
align=center>2</td><td align=center>3
</td></tr>");
//tampilkan isi tabel
while (list($index1,$nilai1)=each($Harga))
{
print("<tr><td>"); print($index1);
print("</td>");
while (list($index2,$nilai2)=each($nilai1))
{
print("<td>");print($nilai2);print("</td>");
}
print("</tr>");
}
print("</table>");
?>
<br>PEMBELIAN<br>
<form method="post" action="">
Nama Buah : <select name="nb">
<option>Jeruk</option>
<option>Apel</option>
<option>Mangga</option>
</select><br>
Kualitas :
<input type="radio" name="kualitas"
value="1">1
<input type="radio" name="kualitas"
value="2">2
<input type="radio" name="kualitas"
value="3">3<br>
Jumlah :
<input type="text" name="jml" size="4">
<input type="submit" value="Proses">
</form>16 October 2008 10
<?php
if (empty($_POST['nb']) or empty($_POST['kualitas']) or
empty($_POST['jml']))
{
echo "Data Tidak Langkap";
exit;
}
else
{
$total = $_POST['jml'] * $Harga[$_POST['nb']][$_POST['kualitas']-1];
printf("Total Harga = %d<br>",$total);
}
?>
</body></html>