在具有用户输入的相同字段中显示结果[PHP]

时间:2014-10-16 16:35:58

标签: php

您好我有一个简单的页面,允许用户输入二进制值,然后将其转换为十进制值。但是,我使用两个字段,一个用于输入二进制值,另一个用于显示十进制结果。

我只想在字段上使用,所以当用户输入二进制值时,十进制的结果将出现在输入的同一个框中。这是我目前的代码:

<?php
if (isset($_POST['submit']))
{
    $str = $_POST['binToDec'];
    $pos = 0;
    $sum = 0;
    $tempSum = 0;
    $strLength = strlen($_POST['binToDec']) - 1;
    $powerOfTwo = 1;
    if ( $str{strLength} == 1 )
        $sum += 1;
    for ( $i = $strLength - 1; $i >=0; $i-- )
    {
        $tempSum = ($powerOfTwo *= 2);
        if ( $str{$i} == 1 )
    $sum += $tempSum;
}
}
?>
<html><body>
<form method="post" action="#">Binary value: <input name="binToDec"><br />
Result: <input value="<?php if (isset($sum)) echo $sum ?>"><br />
<input type="submit" name="submit" value="Convert">
</form>
<body></html>

3 个答案:

答案 0 :(得分:1)

这个小修改将解决您的问题:

<form method="post" action="#">
Binary value: <input name="binToDec" value="<?php if (isset($sum)) echo $sum ?>"><br />
<input type="submit" name="submit" value="Convert">
</form>

此代码是对您用于表单POST操作的输入设置值。

答案 1 :(得分:1)

以下是代码:

<?php
if (isset($_POST['submit']))
{
    $str = $_POST['binToDec'];
    $pos = 0;
    $sum = 0;
    $tempSum = 0;
    $strLength = strlen($_POST['binToDec']) - 1;
    $powerOfTwo = 1;
    if ( $str{strLength} == 1 )
        $sum += 1;
    for ( $i = $strLength - 1; $i >=0; $i-- )
    {
        $tempSum = ($powerOfTwo *= 2);
        if ( $str{$i} == 1 )
    $sum += $tempSum;
}
}
?>
<html><body>
<form method="post" action="#">
Binary value: <input name="binToDec" value="<?php if (isset($sum)) echo $sum ?>" />
<input type="submit" name="submit" value="Convert">
</form>
<body></html>

答案 2 :(得分:1)

Try to use the onkeyup or onkeydown or onchange to show the value in the same box, using    
javascript,

example,

   function Conversion(num){
    return num.split('').reverse().reduce(function(x, y, i){
    return (y === '1') ? x + Math.pow(2, i) : x;
   }, 0);
    }

  Enter: <input id="bin" name="" type="text" onkeyup="Conversion(this)" size=20>   

使用javascript将返回值存储到同一文本框中,例如使用document.getElementbyId