【问题标题】:adding arrays of numbers into html form input and displaying the calculated result将数字数组添加到 html 表单输入中并显示计算结果
【发布时间】:2014-06-18 18:01:45
【问题描述】:

我有一个包含 2-3 个标题的数组。例如。 'Get 20% Off' , 'Receive 40% Savings' , 'Grab 10% discounts' 等。我想得到'%'符号之前的数值。并将此数值作为输入传递到 html 表单中。作为回报,表格将计算百分比金额。并显示所有结果。

现在我已经成功地为一个标题完成了这项工作。但我无法获得一系列标题。

我的代码如下-

//获取所有标题的代码 //将其放入名为'$array'的数组中

foreach($array as $str) {
if(preg_match('/(\d+)\%/i' ,$str,$m)) {
             echo $m[1],"\n"; ?>

<?php  }
} ?>

//上面的代码提取百分比关闭符号之前的金额。下面的代码将其作为输入传递给表单 (name=a)。其他输入 (name=b) 来自不同的来源。那工作正常。计算时考虑输入为 100。我需要计算 w.r.t 100 的百分比值。例如,如果输入 a 为 5,则另一个输入 b 为 100。要输出的值为 5。

<form name="form1">
  <input type="text" name="a" value="<?php echo $m[1]; ?>" size=5> 
  <input class="budget-sidebar" type="text" name="b" id="amount" size=5>

以下html用于显示计算值并提交表单。

<input type="text" name="total1" value="ans1" size=5 maxlength=4>
  <input type="button" value="Calculate" onClick="calc1(this.form)">
  </form>

下面的 javascript 函数负责接受输入并计算值并显示它。

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function calc1(form) {
a = form.a.value/100;
b = a*form.b.value;
form.total1.value = b;
}
//  End -->
</script>

我发布了一个类似的问题,要求提供不同的建议,这应该是一个不同的查询。谢谢。

【问题讨论】:

  • 我不明白你在问什么?
  • 您在计算或显示时遇到错误??
  • 我能够显示单个字符串的结果。我想显示数组中 2-3 个字符串的结果。

标签: javascript php html arrays wordpress


【解决方案1】:

在执行计算之前尝试将表单值转换为整数

function calc1(form) {
    a = parseInt(form.a.value, 10)/100;
    b = a* parseInt(form.b.value, 10);
    form.total1.value = b;
}

而且你必须对值进行四舍五入以避免得到奇怪的值

[编辑]:

并且要获得多字符串,这样的事情可能会起作用(抱歉没有测试)

// php
$values = array();
foreach($array as $str) {
    if(preg_match('/(\d+)\%/i' ,$str,$m)) {
        $values[] = $m[1];
    }
}

// for html
<form name="form1">
    <?php for($i = 0; $i < count($values); $i++) { ?>
    <input type="text" name="a<?php echo $i ?>" value="<?php echo $values[i]; ?>" size=5> 
    <?php} ?>
    <input class="budget-sidebar" type="text" name="b" id="amount" size=5>

// javascript
function calc1(form) {
    var i = 0, a = 0;
    while (form["a" + i]) {
        a += parseInt(form["a" + i].value, 10);
        i++;
    }
    b = a/100 * parseInt(form.b.value, 10);
    form.total1.value = b;
}

【讨论】:

  • 感谢 peernohell,但我无法计算多个字符串的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多