您好我有一个简单的页面,允许用户输入二进制值,然后将其转换为十进制值。但是,我使用两个字段,一个用于输入二进制值,另一个用于显示十进制结果。
我只想在字段上使用,所以当用户输入二进制值时,十进制的结果将出现在输入的同一个框中。这是我目前的代码:
<?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 :(得分: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