【问题标题】:Parse value of php variable to HTML input field将 php 变量的值解析为 HTML 输入字段
【发布时间】:2021-06-02 22:04:03
【问题描述】:

我正在尝试将 php 变量的值解析为 HTMl 输入字段 (element_5)。现在我只想将用户输入从 element_1 写到这个字段。这只是一个虚拟函数,稍后将被 python 脚本替换。 但是,当我单击 submit 按钮时,字段 element_5 中没有输出,并且所有其他文件的内容也消失了。 你能检查我哪里出错了吗? 这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?php
    function display()
    {
    $val=$_POST['element_1'];
    echo '<id="element_5" name="element_5" class="element text medium" type="text" maxlength="255" value="'. $val .'">';
    //echo $val;
    }
    if(isset($_POST['submit']))
    {
       display();
    } 
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Policy Lookup</title>
<link rel="stylesheet" type="text/css" href="view.css" media="all">
<script type="text/javascript" src="view.js"></script>

</head>
<body id="main_body" >
    
    <img id="top" src="top.png" alt="">
    <div id="form_container">
    
        <h1><a>Policy Lookup</a></h1>
        <form id="form_26900" class="appnitro"  method="post" action="form.php">
                    <div class="form_description">
            <h2>Policy Lookup</h2>
            <p></p>
        </div>                      
            <ul >
            
                    <li id="li_1" >
        <label class="description" for="element_1">Source IP </label>
        <div>
            <input id="element_1" name="element_1" class="element text medium" type="text" maxlength="255" value=""/> 
        </div> 
        </li>       <li id="li_2" >
        <label class="description" for="element_2">Destination IP </label>
        <div>
            <input id="element_2" name="element_2" class="element text medium" type="text" maxlength="255" value=""/> 
        </div> 
        </li>       <li id="li_4" >
        <label class="description" for="element_4">Drop Down </label>
        <div>
        <select class="element select medium" id="element_4" name="element_4"> 
            <option value="" selected="selected"></option>
<option value="1" >TCP</option>
<option value="2" >UDP</option>
<option value="3" >ICMP</option>
<option value="4" >IP</option>

        </select>
        </div> 
        </li>       <li id="li_3" >
        <label class="description" for="element_3">Destination Port </label>
        <div>
            <input id="element_3" name="element_3" class="element text medium" type="text" maxlength="255" value=""/> 
        </div> 
        </li>
            
                    <li class="buttons">
                <input type="hidden" name="form_id" value="26900" />
                
                <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
        </li>
        <li id="li_5" >
        <label class="description" for="element_5">Result </label>
        <div>
            <input id="element_5" name="element_5" class="element text medium" type="text" maxlength="255" value="" readonly/> 
        </div> 
        </li>       
            </ul>
        </form> 
        <div id="footer">
            Generated by <a href="http://www.phpform.org">pForm</a>
        </div>
    </div>
    <img id="bottom" src="bottom.png" alt="">
    </body>
</html>

【问题讨论】:

  • 您得到的答案可以为您解决问题,但我只想指出您输出元素的位置很重要。您当前的代码将在 HTML 文档之前(以及在表单之外)输出元素。 HTML(就像 XML)是分层的。例如,如果您希望元素成为表单的一部分,则需要将该元素放在开始 &lt;form&gt; 和结束 &lt;/form&gt; 标记之间。

标签: php html forms


【解决方案1】:

echo '&lt;id="element_5" 必须是 echo '&lt;input id="element_5"。但这会复制你已经得到的框,并且它会在&lt;html&gt;标签之外,使其无效(因为它不是HTML文档的一部分),所以浏览器没有义务显示它。

试试这个:

<?php
$val = null;

if(isset($_POST['submit']))
{
   $val = $_POST['element_1'];
} 
?>

在页面下方的元素上:

<input id="element_5" name="element_5" class="element text medium" type="text" maxlength="255" value="<?php echo ($val != null ? $val : ""); ?>" readonly/>

如果 $val 不为空,请注意那里的内联 PHP 以回显 $val。

【讨论】:

  • 非常感谢您的解释。
  • @Michele 没问题。如果答案对您有所帮助,请记得将其标记为“已接受”(单击答案旁边的勾号使其变为绿色)。另请参阅stackoverflow.com/help/someone-answers 了解更多信息。谢谢:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多