2014-10-16 90 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