【问题标题】:in a hidden input, how to get the input text value in another input?在隐藏输入中,如何在另一个输入中获取输入文本值?
【发布时间】:2015-06-30 23:29:14
【问题描述】:

我正在使用 php。 有两个输入,aa 和 bb。 aa 是一个文本输入,用户可以输入一些东西,我希望 bb(这是一个隐藏的输入)与来自 aa 的输入值一起提交。 我试过这个,但是,提交表单时,输入 bb 中的 aa_value 似乎为空。如何实现?

aa_value() {

                $value = '';
                if ( isset( $_POST['aa'] ) )
                        $value = $_POST['aa'];
                echo $value;

}

<input type="text" name="aa" id="aa" value="<?php aa_value(); ?>

<input type="hidden" name="bb" id="bb" value="<?php aa_value(); ?>

【问题讨论】:

  • PHP 在输出之前执行。因此,除非aa_value() 在表单加载之前已经有值,否则您的隐藏输入永远不会有值。
  • 或者更容易解释:在提交表单之前不能调用 PHP 函数。改用 Javascript 函数,或者干脆一起删除隐藏的输入并将 $_POST['aa'] 保存在后端的 2 个单独变量中,因为它们无论如何都是相同的。
  • 看似合理,但为什么aa没有问题?

标签: php html forms input


【解决方案1】:

这是经过测试的,可以正常工作。如果您希望看到神奇的效果,请将隐藏的文本字段更改为普通文本字段:

<?php

if(isset($_POST["aa"]) && !empty($_POST["aa"])){
    $value = $_POST["aa"];
} else {
    $value = "";
}

?>

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Example</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script>
        $(document).ready(function(){
            $(document).on("change keyup mouseup", "#aa", function(){
                $("#bb").val($("#aa").val());
            });
        });
        </script>
    </head>
    <body>
        <input type="text" name="aa" id="aa" value="<?php echo $value; ?>" />
        <input type="hidden" name="bb" id="bb" value="<?php echo $value; ?>" />
    </body>
</html>

【讨论】:

  • @wenlujon 如果您的问题得到了回答,请标记正确的答案,这样问题就不会永远保持开放状态。这也是一种向花时间帮助您的人表示感谢的方式。
【解决方案2】:

您需要添加单词function并将echo更改为return

<?php
   function aa_value() {
       $value = '';
       if ( isset( $_POST['aa'] ) )
               $value = $_POST['aa'];
       return $value;
   }
 ?>

参考:http://php.net/manual/en/functions.user-defined.php

【讨论】:

  • 使用echo的aa没有问题。
【解决方案3】:

PHP 是服务器端语言,因此它将在浏览器上呈现 html 之前执行。 您需要使用 javascript 或 jquery 来解决问题。 使用以下代码进行模糊或更改。

<input type="text" name="aa" id="aa" value="<?php aa_value(); ?>

<input type="hidden" name="bb" id="bb" value="<?php aa_value(); ?>

<script>
$(document).ready(function()
{
$('#aa').blur(function()
{
$('#bb').val($('#aa').val());
});

});
</script>

提交表单后,您可以获取 aa 和 bb 值。

【讨论】:

  • 这是正确的想法,但却是错误的事件。请改用input 事件。
  • 你的意思是把 $('#aa').blur(function() 改成 $('#aa').input(function()?
猜你喜欢
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2016-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多