0

我有一个包含 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。我需要计算 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>

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

4

1 回答 1

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;
}
于 2013-09-27T08:12:32.387 回答