为了账号安全,请及时绑定邮箱和手机立即绑定

PHP基础转换函数

PHP基础转换函数

PHP
狐的传说 2021-11-26 15:17:44
我正在开发一个项目,该项目将从 HTML 表单中获取用户输入值,然后将这些值从一个基数转换为另一个基数。我已经尝试了几个小时没有成功。我创建了五种 Html 输入类型。一个是要转换的数字。两个用于转换的基础。三是要转换的基础。四,一个用于显示结果的文本框,最后是一个按钮,用户将单击该按钮以运行该过程。我将把代码放在下面以获得热情的帮助。提前谢谢大家。我尝试了 PHPisset 方法,!empty,settype,post 但都不起作用<form method="POST" name="btnN"  id="chr"class="myfm" action=" <?php htmlspecialchars($_SERVER['PHP_SELF']);?>">   <span style="color:white">From number:</span>  <br><input type="text" name="screen1" ><br><br>        <span style="color:white">From base:</span> <br><input type="text" name="screen2"><br><br>       <span style="color:white">To base:</span> <br><input type="text" name="screen3"><br><br>         <span style="color:white">Result:</span> <br><input type="text" name="screen" ><br><br>       <input name="conver" type="button" value="Convert" onclick="btnN.screen.value='<?php echo $converted; ?>'" style="width:50%" >   </form>     <?php   $screen1=settype($_POST['screen1']);    $screen2= settype($_POST['screen2']);     $screen3=settype($_POST['screen3']);     do{       $screen1=settype($screen1,"integer");          $screen2=settype($screen2,"integer");         $screen3=settype($screen3,"integer");         $converted= base_convert($screen1,$screen2,$creen3);         }         while(isset($_POST['conver']));   ?>我想要的只是一个带有文本框的 HTML 表单,用户可以在其中输入他或她想要从指定基数转换为另一个指定基数的数字。将 12548 从 base10 转换为 base5 的示例。我的主要问题是 PHP 代码。感谢您的帮助!
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

需要解决的几个问题:

  1. 你用settype()错了。它改变了变量,它不返回新值。你可以用intval()它。而且您不应该转换screen1为整数;to 的第一个参数base_convert必须是一个字符串(如果将其转换为整数,它将被解析为十进制,但重点是在特定的基数中解析它)。

  2. 您应该使用if,而不是do-while来测试表单是否已提交。

  3. 您不能像现在这样在 JavaScript 中使用 PHP 变量。在 PHP 脚本完成后,JavaScript 在客户端上运行。因此,您onclick将显示上一个表单提交的值。

  4. 相反,将结果变量回显到输出字段的值中。这必须在执行基本转换的代码之后。

  5. 该按钮需要是一个提交按钮,以便提交表单。如果您不想提交表单并重新加载页面,则需要学习使用 AJAX,我不会在本答案中展示如何操作。

  6. 您在对 的调用中拼错$screen3$creen3(missing sbase_convert()

  7. 您需要$_SERVER['PHP_SELF']action属性中回显。

<?php

if (isset($_POST['conver'])) {

    $screen1 = $_POST['screen1'];

    $screen2 = intval($_POST['screen2']);

    $screen3 = intval($_POST['screen3']);

    $converted= base_convert($screen1,$screen2,$screen3);

} else {

    $screen1 = $screen2 = $screen3 = $converted = "";

}

?>

<form method="POST" name="btnN"  id="chr"class="myfm" action=" <?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">

    <span style="color:white">From number:</span>  <br><input type="text" name="screen1" value="<?php echo $screen1; ?>" ><br><br>  

    <span style="color:white">From base:</span> <br><input type="text" name="screen2" value="<?php echo $screen2; ?>"><br><br>

    <span style="color:white">To base:</span> <br><input type="text" name="screen3" value="<?php echo $screen3; ?>"><br><br>

    <span style="color:white">Result:</span> <br><input type="text" name="screen" value="<?php echo $converted; ?>" ><br><br>

    <input name="conver" type="submit" value="Convert" style="width:50%" >

</form>  


查看完整回答
反对 回复 2021-11-26
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

我认为您必须重新创建代码,因为它确实令人困惑:


    <form method="POST" name="btnN"  id="chr"class="myfm" action=" <?php htmlspecialchars($_SERVER['PHP_SELF']);?>">

           <span style="color:white">From number:</span>  <br><input type="text" name="input" ><br><br>  

              <span style="color:white">From base:</span> <br><input type="text" name="type-from"><br><br>

               <span style="color:white">To base:</span> <br><input type="text" name="type-to">  

           <?php

        if(isset($_POST['submit'])){

           $result = base_convert(trim($_POST['input']),strtolower($_POST['type-from']),strtolower($_POST['type-to']));

        }

           ?>


    <span style="color:white">Result:</span> <br><input type="text" name="screen" value="<?php echo $result; ?>" ><br><br>

        <input name="conver" type="submit" value="Convert" style="width:50%" >

</form>


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 207 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信