输出结果立即计算php

时间:2014-01-10 01:25:18

标签: php

我这里有一个代码...我想要的是立即计算总数并在文本框中显示而不点击操作按钮。

代码:

     <?php
        include('include/connect.php');
        if(isset($_POST['enter']))
        {
        $name = $_POST['name'];
        $score1 = $_POST['optA'];
        $score2 = $_POST['optB'];
        $score3 = $_POST['optC'];
        $score4 = $_POST['optD'];
        $total1 = $_POST['total'];
        $total = ($score1 + $score2 + $score3 + $score4);
        mysql_query("INSERT INTO score (name,score1,score2,score3,score4,total) VALUE ('$name','$score1','$score2','$score3','$score4','$total')");
        echo "succesful";
        }
        else
        {
        echo "you fail to execute!";
        }
        ?>

代码:

    <form method="post" action="index.php">
    <input type="text" name="name"  />
    <input type="radio" name="optA" value="1" />1
    <input type="radio" name="optA" value="2" />2
    <input type="radio" name="optA" value="3" />3<br>
    <input type="radio" name="optB" value="1" />1
    <input type="radio" name="optB" value="2" />2
    <input type="radio" name="optB" value="3" />3<br>
    <input type="radio" name="optC" value="1" />1
    <input type="radio" name="optC" value="2" />2
    <input type="radio" name="optC" value="3" />3<br>
    <input type="radio" name="optD" value="1" />1
    <input type="radio" name="optD" value="2" />2
    <input type="radio" name="optD" value="3" />3
    <input type="text" name="total" value="<?php echo $total ?>" /> 
    <input type="submit" value="enter" name="enter" />
    </form>

2 个答案:

答案 0 :(得分:0)

PHP在内容到达浏览器之前执行,因此不会加载任何元素,因此您无法访问它们。它是服务器端语言,而不是客户端; 因此您无法执行此操作。 客户端的示例是 Javascript。但是,您可以创建 HTML元素并设置其属性,然后echo它在页面上。

答案 1 :(得分:-1)

您必须以某种形式使用JavaScript,而不必将答案发回服务器并等待回复。

以下是如何在JQuery中执行此操作。

function calculateTotal() {
    var total = 0;
    $('form input:radio:checked').each(function () {
        total = total + parseInt($(this).val());
    });
    $('form [name=total]').val(total);
    return false;
}

在您的HTML中,您需要将提交按钮更改为其他类似内容:

<span onclick="calculateTotal()">Enter</span>