2014-10-16 54 views
0

您好,我有一个简单的页面,允许用户输入二进制值,然后将其转换为十进制值。但是,我使用两个字段,一个用于输入二进制值,另一个用十进制显示结果。在用户输入的同一字段中显示结果[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> 
+0

我会建议上添加'isset'的' $ _POST'以避免任何错误。 – 2014-10-16 16:42:35

回答

1

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

您所使用的表单POST操作输入
<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> 

此代码设定值。

+0

非常感谢,这正是我所期待的。 – user2917393 2014-10-16 17:44:44

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> 
+0

非常感谢。 – user2917393 2014-10-16 17:45:36

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

+0

非常感谢。 – user2917393 2014-10-16 17:46:29