我在html文档中有一个表单,我正在尝试做的是当有人提交此表单时,它转到文件“total.php”并在total.php文件中我计算(值的乘法和结果反映在html页面上,但它无法正常工作。)
这是html和javascript代码
表格的工作:
当用户选择他的等级时,让我们说1然后其他两个字段将使用此代码中提到的javascript自动填充,因此对于等级1,其他两个字段将被填充为
没有。人= 3,人的收入= 5美元。在此之后有一个名为计算收益的按钮,一旦用户点击该按钮,它就会将文件total.php作为“action of form = total.php”
<script>
function getPerson(select) {
var form = select.form;
form.ref_person.value = select.options[select.selectedIndex].getAttribute('per');
form.earn_person.value = select.value;}
</script>
<form id="calc" method="post" action="total.php" target="total">
<fieldset>
<legend>Person and earning</legend>
<label class="fhead">CHOOSE YOUR LEVEL :</label>
<select name="choose" id="personSelect" onchange="getPerson(this)">
<option value="" selected>Choose</option>
<option per="3" value="$5">1</option>
<option per="9" value="$4">2</option>
<option per="27" value="$4">3</option>
</select>
<br>
<label class="fhead" for="personNumber">No. Of person:</label>
//first input field
<input type="text" name="ref_person"id="personNumber" class="field" readonly="readonly">
<br />
<label class="fhead" for="personEarning">Earning of person:</label>
//second input field
<input type="text" name="earn_person" id="personEarning" class="field" readonly="readonly">
</fieldset>
<input style=" float:right; margin-right:90px;" name="submit" value="Calculate Earnings" type="submit">
</form>
//This iframe tag helps in reflecting the result of the calculation I did in total.php .
<iframe src="total.php" name="total" width="100%"frameborder="0"></iframe>
这是我的total.php代码
现在在总PHP中我获取了表单的输入值来计算东西,这个结果应该反映在html页面上,但不幸的是它没有w。
我不知道我在哪里弄错了。
//fetching input values from form
<?php
$ref_person=$_POST['ref_person'];
$earn_person=$_POST['earn_person'];
//required calcualtion
$total =$ref_person * $earn_person;
$monthly = $total;
$yearly = $monthly * 12;
?>
<This is start tr tag>
<this is td tag>
<b style="color:#FFF">Monthly Income: $<?php if (empty($total) || $total == 0 || $total == 0.00) { echo "0"; }
else { echo "$monthly"; } ?>.00</b>
<This is end of td tag >
</This is end of tr tag>
<This is start tr tag >
<This is td tag >
<b style="color:#FFF">Yearly Income: $<?php if (empty($total) || $total == 0 || $total == 0.00) { echo "0"; }
else { echo "$yearly"; } ?>.00</b>
<This is end of td tag >
</This is end of tr tag>
答案 0 :(得分:0)
有很多错误。假设你的JS工作并且你有值,那么你可能会得到无法转换为整数的字符串
选项值是错误的,不应该有$ before数字,你可以使用$之间没有值,因为在PHP中它会在你进行乘法时被转换为整数0,并且因为像$ 1这样的数字变量实际上是{{3在PHP中,它可能会导致警告。
更改
<StackPanel Grid.Row="1" VerticalAlignment="Top" Padding="12,8,0,0">
<TextBlock Text="{x:Bind ViewModel.Value.EventName}" />
<ListBox ItemsSource="{x:Bind ViewModel.Value.Companies}">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="viewModels:Company">
<TextBlock Text="{x:Bind CompanyName}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
到
<option per="3" value="$5">1</option>
<option per="9" value="$4">2</option>
<option per="27" value="$4">3</option>
你的HTML也有错误。这里的属性之间没有空格:
<option per="3" value="5">$5</option>
<option per="9" value="4">$4</option>
<option per="27" value="4">$4</option>
你的total.php不会那样工作。也许如果您将数据保存在会话中然后定期刷新iframe,那将是有意义的。
答案 1 :(得分:0)
令人惊讶的是,javascript函数似乎有效,所以请接受我的道歉,对此表示怀疑。我认为您可以将total.php
代码更改为:
<?php
$ref_person=intval( $_POST['ref_person'] );
$earn_person=intval( $_POST['earn_person'] );
$total = $ref_person * $earn_person;
$monthly = $total;
$yearly = $monthly * 12;
/* you didn't return or echo any value */
echo $yearly > 0 && !empty( $yearly ) ? 'Total Yearly: $'.$yearly : '';
?>
我在测试中改变了如下所示的js函数:
function getPerson(n) {
var form = n.parentNode.parentNode;
form.ref_person.value = n.options[ n.options.selectedIndex ].getAttribute('per');
form.earn_person.value = n.value;
}