В целях обучения мне нужно сделать функцию, которая говорит мне "стоимость поездки" между 2 городами. В книге говорится, что я набираю эту функцию:
<?php
function travelcost($start, $destination)
{
$travelcost = array();
$travelcost[1] = array();
$travelcost[2] = array();
$travelcost[3] = array();
$travelcost[4] = array();
$travelcost[1][1] = 0;
$travelcost[1][2] = 30;
$travelcost[1][3] = 60;
$travelcost[1][4] = 90;
echo($travelcost[$start][$destination] . " Euro's");
}
?>
Кроме того, я создал эту форму, чтобы спросить о начале и месте назначения:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Start: <select name="start" value="true">
<option value="start[]">Amsterdam</option>
<option value="start[]">Utrecht</option>
<option value="start[]">Den Haag</option>
<option value="start[]">Rotterdam</option>
</select>
Destination: <select name="destination" value="true">
<option value="destination[]">Amsterdam</option>
<option value="destination[]">Utrecht</option>
<option value="destination[]">Den Haag</option>
<option value="destination[]">Rotterdam</option>
</select>
<p><input type="submit" name="calculate" value="Calculate"</p>
</form>
С последующим:
<?php
if(isset($_POST["start"])&& isset($_POST["destination"]))
{
travelcost($_POST['start'], $_POST['destination']);
}
?>
Это дает мне Undefined index: start []
Я знаю, что я делаю это неправильно, но я просто не вижу логики в функции и массиве. Я предполагаю, что функция правильная, потому что она прямо из книги, но я тоже не уверен в этом.
Кто-нибудь может мне помочь?
Это не верно,
<option value="start[]">Amsterdam</option>
^ ^
Должен быть
<option value="start">Amsterdam</option>
или
<option value="Amsterdam">Amsterdam</option>
То же самое для всех параметров в начале и в пункте назначения.
Согласно вашей функции "travelcost(), ваш выбор должен быть
Start: <select name="start" value="true">
<option value="1">Amsterdam</option>
<option value="1">Utrecht</option>
<option value="1">Den Haag</option>
<option value="1">Rotterdam</option>
</select>
Destination: <select name="destination" value="true">
<option value="1">Amsterdam</option>
<option value="2">Utrecht</option>
<option value="3">Den Haag</option>
<option value="4">Rotterdam</option>
</select>