使用select标记的PHP
我想帮忙做作业。使用select标记的PHP,php,function,select,Php,Function,Select,我想帮忙做作业。 我需要使用一个选择菜单,然后将选择标签的选择放入一个函数中。现在,当我尝试这样做时,我得到了一个未定义的错误(这很奇怪,因为我定义了它),我尝试了完整的if系统。但我很快就放弃了,因为这只是做很多工作的方法,而可能有更好的方法。 这是我的密码: <form action=<?php echo $_SERVER['PHP_SELF'];?>> Vertrek: <select name="vertrek
我需要使用一个选择菜单,然后将选择标签的选择放入一个函数中。现在,当我尝试这样做时,我得到了一个未定义的错误(这很奇怪,因为我定义了它),我尝试了完整的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']
未定义。
您可能希望将数组键更改为字符串,或将选项值更改为整数。您的值是字符串而不是整数。
$reiskosten[$vertrek][$bestemming]
未定义,因为其
例如,$reiskosten['rotterdam']['rotterdam2']
未定义。
您可能希望将数组键更改为字符串或将选项值更改为整数。您的表单是GET
。您正在检查POST
变量。您的表单是GET
。您正在检查POST
变量。首先要解决的问题是,您使用错误的参数调用了reiskosten()函数。您要做的是将表单值传递给该函数,但如果仔细观察,您会发现您传递的是isset()函数的返回值,每个返回值都是布尔值(TRUE/FALSE),而不是表单元素本身的值。也就是说,一旦您解决了这个问题,您就会意识到甚至表单元素的值也不是您想要的。此时,您要么调整value=”“属性包含的内容,要么重新评估在后端为内容编制索引的方式。祝你好运 首先要解决的问题是,调用reiskosten()函数时使用了错误的参数。您要做的是将表单值传递给该函数,但如果仔细观察,您会发现您传递的是isset()函数的返回值,每个返回值都是布尔值(TRUE/FALSE),而不是表单元素本身的值。也就是说,一旦您解决了这个问题,您就会意识到甚至表单元素的值也不是您想要的。此时,您要么调整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
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;
}
?>
您的表单应该是:
<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
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
的值将是HTML选项中的值
字段的任何值,因此它将是一个名称,而不是一个数字
您可以使用关联数组对其进行寻址,如:
$reiskosten = array();
$reiskosten['amsterdam'] = array();
$reiskosten['utrecht'] = array();
$reiskosten['denhaag'] = array();
$reiskosten['rotterdam'] = array();
对于设置价格的子数组定义也是如此。函数返回true
或false
,因此以下行不正确,因为您似乎希望通过以下方式发送值:
reiskosten(isset($_POST['vertrek']), isset($_POST['aankomst']));
将其更改为:
if( isset($_POST['vertrek']) && isset($_POST['aankomst']) ) {
reiskosten($_POST['vertrek'], $_POST['aankomst']);
}
此外,vertrek
和aankomst
的值将是HTML选项中的值
字段的任何值,因此它将是一个名称,而不是一个数字
您可以使用关联数组对其进行寻址,如:
$reiskosten = array();
$reiskosten['amsterdam'] = array();
$reiskosten['utrecht'] = array();
$reiskosten['denhaag'] = array();
$reiskosten['rotterdam'] = array();
对于设置价格的子数组定义也是如此。@mightyuhu如果您弄错了,GET是默认值。GET确实修复了它。但是我确实对这个函数有问题,但似乎vaporbook已经回答了这个问题。@mightyuhu你错了,GET是默认值。GET确实解决了这个问题。但我确实对函数有问题,但似乎vaporbook已经回答了这个问题。谢谢你的回答,我将进一步研究这个问题。虽然很奇怪,但我的书上说我必须这样做。我的书毫无用处1.我接受了这个答案,因为它最接近我的需要。最终,这一行修复了它(多亏itachi也提供了获取提示,我给了你一个向上的投票权)reiskosten($_-GET['vertrek'],$_-GET['aankomst']);谢谢你的回答,我会进一步调查的。虽然很奇怪,但我的书上说我必须这样做。我的书毫无用处1.我接受了这个答案,因为它最接近我的需要。最终,这一行修复了它(多亏itachi也提供了获取提示,我给了你一个向上的投票权)reiskosten($_-GET['vertrek'],$_-GET['aankomst']);在表单属性中添加method=“POST”
而不进行向下投票。在表单属性中添加method=“POST”
而不进行向下投票。