我正在编写一个脚本,用于计算旅行中的总距离(英里)。它需要计算总距离以及任何中点之间的距离。现在它计算总距离很好。我正在使用投递箱,并允许它接受最多5个中点。现在,我可能只是想让它变得比它需要的更复杂但是......
我希望能够运行脚本,即使其中三个中点形式为空(这只是说“选择城市”,其值为" "
或null
)。当表单的三个字段留空时,有没有办法让脚本运行?
编辑:每个'索引'或'pont'都定义为= " ";
。我正在为整个脚本使用多维数组,并且7个丢弃框以选择的“选择城市”值开头,其值为空/空值。我只想知道当两个中点值/下拉框保留初始值“选择城市”时如何运行表单/脚本。
对不起,这是我的一些代码:
<?php
if (isset($_POST['Submit'])) {
$StartIndex = stripslashes($_POST['Start']);
$EndIndex = stripslashes($_POST['End']);
if (isset($Distances[$StartIndex][$EndIndex]))
echo "Total trip distance from $StartIndex to $EndIndex is". $Distances[$StartIndex][$EndIndex]." miles<br/>";
else
echo "Distance could not be calculated";
}
?>
这就是我停在......
的地方<?php
if (isset($_POST['Submit'])) {
$Point1 = stripslashes($_POST['1']);
?>
^^其他四个中点是相同的,我没有线索如何在仅选择开始城市,结束城市和两个中点城市时仍然运行表格。我会添加整个脚本,但它与多维数组
很长要查看我的表单是什么样的,您可以转到&gt;&gt; 131.118.95.215/users/mjswiontek0/project/city/citytocity.php
答案 0 :(得分:0)
如果要将其包含在计算中,只需在每个中点评估您的测试(例如empty($_POST["1"])
)即可找到。
参见注释(非常通用)示例:
if (isset($_POST['Submit']))
{
// start with the start index
$PrevIndex = stripslashes($_POST['Start']);
$Point = 1;
$Distance = 0;
do
{
// do we have the N-th midpoint?
$HavePoint = !empty($_POST[$Point]);
// if not, use end point
$NextIndex = stripslashes($_POST[$HavePoint ? $Point : 'End']);
// add distance between the two midpoint to total
$Distance += $Distances[$PrevIndex][$NextIndex];
// make current point the previous point to the next iteration
$PrevIndex = $NextIndex;
// move to the next point for the next iteration
$Point++;
}
while ($HavePoint);
}