[英]PHP using the select tag
我想帮我做作业。
我需要使用选择菜单,然后将选择标记的选择放入函数中。 现在,当我尝试执行此操作时,出现一个未定义的错误(自从我定义了它以来,这很奇怪),我尝试执行完整的if系统。 但是我很快就放弃了,因为这只是很多工作的一种方式,而这可能是一种更好的方法。 这是我的代码:
<form action=<?php echo $_SERVER['PHP_SELF'];?>>
Vertrek:
<select name="vertrek">
<option value="amsterdam">Amsterdam</option>
<option value="utrecht">Utrecht</option>
<option value="denhaag">Den Haag</option>
<option value="rotterdam">Rotterdam</option>
</select>
Aankomst:
<select name="aankomst">
<option value="amsterdam2">Amsterdam</option>
<option value="utrecht2">Utrecht</option>
<option value="denhaag2">Den Haag</option>
<option value="rotterdam2">Rotterdam</option>
</select>
<br/><br/>
<input type="submit" value="Berekenen">
<p>------</p>
De berekende reiskosten zijn:
<?php
reiskosten(isset($_POST['vertrek']), isset($_POST['aankomst']));
?> Euros's
和“ reiskosten”功能:
<?php
function reiskosten($vertrek, $bestemming)
{
$reiskosten = array();
$reiskosten[1] = array();
$reiskosten[2] = array();
$reiskosten[3] = array();
$reiskosten[4] = array();
//Amsterdam naar iets
$reiskosten[1][1] = 0;
$reiskosten[1][2] = 30;
$reiskosten[1][3] = 60;
$reiskosten[1][4] = 90;
//Utrecht naar iets
$reiskosten[2][1] = 30;
$reiskosten[2][2] = 0;
$reiskosten[2][3] = 40;
$reiskosten[2][4] = 20;
//Den Haag naar iets
$reiskosten[3][1] = 60;
$reiskosten[3][2] = 40;
$reiskosten[3][3] = 0;
$reiskosten[3][4] = 10;
//Rotterdam naar iets
$reiskosten[4][1] = 90;
$reiskosten[4][2] = 20;
$reiskosten[4][3] = 10;
$reiskosten[4][4] = 0;
echo($reiskosten[$vertrek][$bestemming] . " Euro's ");
}
?>
您的值是字符串,没有整数。 $reiskosten[$vertrek][$bestemming]
因此没有定义。 $reiskosten['rotterdam']['rotterdam2']
未定义。 您可能需要将数组键更改为字符串,或者将选项值更改为整数。
您的表格是GET
。 您正在检查POST
变量。
您要修复的第一件事是使用错误的参数调用reiskosten()函数。 您的意思是将表单值传递给该函数,但是如果仔细看,您会发现您正在传递isset()函数的返回值,每个函数都将是一个布尔值(TRUE / FALSE)值,而不是表单元素本身的值。 也就是说,修复该问题后,您将意识到,即使form元素的值也不是您想要的。 届时,您将调整value =“”属性包含的内容,或重新评估在后端对事物进行索引的方式。 祝好运!
您的表格应为:
<form action=<?php echo $_SERVER['PHP_SELF'];?>>
Vertrek:
<select name="vertrek">
<option value="1">Amsterdam</option>
<option value="2">Utrecht</option>
<option value="3">Den Haag</option>
<option value="4">Rotterdam</option>
</select>
Aankomst:
<select name="aankomst">
<option value="1">Amsterdam</option>
<option value="2">Utrecht</option>
<option value="3">Den Haag</option>
<option value="4">Rotterdam</option>
</select>
<br/><br/>
<input type="submit" value="Berekenen">
<p>------</p>
De berekende reiskosten zijn:
<?php
$reiskosten = reiskosten($_POST['vertrek'], $_POST['aankomst']);
echo $reiskosten . "Euros's";
?>
您的PHP应该是:
<?php
function reiskosten($vertrek, $bestemming)
{
$reiskosten = array();
$reiskosten[1] = array();
$reiskosten[2] = array();
$reiskosten[3] = array();
$reiskosten[4] = array();
//Amsterdam naar iets
$reiskosten[1][1] = 0;
$reiskosten[1][2] = 30;
$reiskosten[1][3] = 60;
$reiskosten[1][4] = 90;
//Utrecht naar iets
$reiskosten[2][1] = 30;
$reiskosten[2][2] = 0;
$reiskosten[2][3] = 40;
$reiskosten[2][4] = 20;
//Den Haag naar iets
$reiskosten[3][1] = 60;
$reiskosten[3][2] = 40;
$reiskosten[3][3] = 0;
$reiskosten[3][4] = 10;
//Rotterdam naar iets
$reiskosten[4][1] = 90;
$reiskosten[4][2] = 20;
$reiskosten[4][3] = 10;
$reiskosten[4][4] = 0;
$return = $reiskosten[$vertrek][$bestemming];
return $return;
}
?>
无需在此处回显,只需返回值即可。
isset()
函数返回true
或false
,因此以下行是错误的,因为您似乎想通过以下方式发送值:
reiskosten(isset($_POST['vertrek']), isset($_POST['aankomst']));
更改为:
if( isset($_POST['vertrek']) && isset($_POST['aankomst']) ) {
reiskosten($_POST['vertrek'], $_POST['aankomst']);
}
同样, vertrek
和aankomst
的value
将与HTML option
的value
字段相同,因此它将是名称,而不是数字。
您可以使用以下关联数组来解决它:
$reiskosten = array();
$reiskosten['amsterdam'] = array();
$reiskosten['utrecht'] = array();
$reiskosten['denhaag'] = array();
$reiskosten['rotterdam'] = array();
设置价格的子数组定义也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.