我正在制作旅行套票网站,我想使用php中的GET,POST,REQUEST检索数据。但我收到一条错误消息说 “数组()否 注意:未定义的索引:“
JavaScript函数:
通过简单地将“ package”和“ person#”中的值相乘来计算总数
下面是我的代码
<script type="text/javascript">
function totalPrice(){
document.getElementById("total").value= "CAD "+
(document.getElementById("package").value * document.getElementById("person").value);}
</script>
<!-- package selection -->
<form action="test.php" method="get">
<select id="package" onchange="totalPrice();" >
<option value="2300">Wild West (Banff, Jasper)</option>
<option value="3300">East Coast(St.Johns)</option>
<option value="1300">Winery Tour(Kelowna, Penticton)</option>
<option value="2600">Northern Light(Yellowknife)</option>
</select>
<select id="person" onchange="totalPrice();">
<option value="1">1 person</option>
<option value="2">2 persons</option>
<option value="3">3 persons</option>
<option value="4">4 persons</option>
<option value="5">5 persons</option>
<option value="6">6 persons</option>
<option value="7">7 persons</option>
<option value="8">8 persons</option>
</select>
<input type="submit">
</form>
<!-- total Amount -->
<label class="form" >Total Amount</label>
<input size =40 type="text" name="total" id="total" disabled>
“ test.php”
<h1>payment total</h1>
<?php
print_r($_GET);
if(!isset($_GET['total'])){
echo "no";
}
echo $_GET['total'];
?>
答案 0 :(得分:1)
要使字段“总计”包含在发送到test.php服务器的内容中,您需要将“总计”输入字段移到form标记内。表单标签之外的任何内容都不会被包含。
编辑添加示例:
<script type="text/javascript">
function totalPrice(){
document.getElementById("total").value= "CAD "+
(document.getElementById("package").value * document.getElementById("person").value);}
</script>
<!-- package selection -->
<form action="test.php" method="get">
<select id="package" onchange="totalPrice();" >
<option value="2300">Wild West (Banff, Jasper)</option>
<option value="3300">East Coast(St.Johns)</option>
<option value="1300">Winery Tour(Kelowna, Penticton)</option>
<option value="2600">Northern Light(Yellowknife)</option>
</select>
<select id="person" onchange="totalPrice();">
<option value="1">1 person</option>
<option value="2">2 persons</option>
<option value="3">3 persons</option>
<option value="4">4 persons</option>
<option value="5">5 persons</option>
<option value="6">6 persons</option>
<option value="7">7 persons</option>
<option value="8">8 persons</option>
</select>
<input type="submit">
<!-- total Amount -->
<label class="form" >Total Amount</label>
<input size =40 type="text" name="total" id="total" disabled>
</form>
答案 1 :(得分:0)
您需要确保要提交的任何数据都在<form> </form>
标记内。如果您将其保留,则数据将不会被传递...
例如,假设您有两个表单标签(A和B),都带有一个提交按钮。如果您从两个表单中都省略了<input size =40 type="text" name="total" id="total" disabled>
,则当您在其中两个表单上按提交时,将在哪个表单中发送总数?
Definition的<form>
标签:
HTML元素表示包含的文档部分 用于将信息提交到Web服务器的交互式控件。 (此处是关键词)
我已将输入内容移到下面的正确位置:
function totalPrice(){
document.getElementById("total").value= "CAD "+
(document.getElementById("package").value * document.getElementById("person").value);}
</script>
<!-- package selection -->
<form action="test.php" method="get">
<select id="package" onchange="totalPrice();" >
<option value="2300">Wild West (Banff, Jasper)</option>
<option value="3300">East Coast(St.Johns)</option>
<option value="1300">Winery Tour(Kelowna, Penticton)</option>
<option value="2600">Northern Light(Yellowknife)</option>
</select>
<select id="person" onchange="totalPrice();">
<option value="1">1 person</option>
<option value="2">2 persons</option>
<option value="3">3 persons</option>
<option value="4">4 persons</option>
<option value="5">5 persons</option>
<option value="6">6 persons</option>
<option value="7">7 persons</option>
<option value="8">8 persons</option>
</select>
<!-- total Amount -->
<label class="form" >Total Amount</label>
<input size =40 type="text" name="total" id="total" disabled>
<input type="submit">
</form> <-- END OF FORM -->
此外,这是在PHP方面处理问题的一种更好的方法,因为尽管您可能正在检查是否设置了总计,但没有设置,但仍然会出错。
<?php
print_r($_GET);
if(isset($_GET['total'])){
echo $_GET['total'];
} else {
echo 'No total';
}
?>
编辑
您还需要使输入不为disabled
,因为不会提交禁用的输入。
如果要使用户无法编辑输入,请更改:
<input size =40 type="text" name="total" id="total" disabled>
到
<input size =40 type="hidden" name="total" id="total">
这也将其从页面中隐藏。如果仍然希望它可见,则可以这样设置:
<input size =40 type="text" name="total" id="total" readonly="readonly">