【问题标题】:Using echo inside a HTML input value在 HTML 输入值中使用 echo
【发布时间】:2012-01-14 22:41:20
【问题描述】:

我有以下代码,完全是从一本 PHP 书籍的练习中复制而来的。我遇到了包含 php echo 语句的 value 属性的问题。根据这本书,第一次加载页面时,输入框应该是空的,因为变量不会包含任何数据。相反,我看到的是这样的:

<br /><b>Notice</b>:  Undefined variable: investment in     <b>C:\xampp\htdocs\book_apps\ch02_future_value\index.php</b> on line <b>20</b><br />. 

有什么建议吗?

<form action="display_results.php" method="post">

    <div id="data">
        <label>Investment Amount:</label>
        <input type="text" name="investment"
               value="<?php echo $investment; ?>"/><br />

        <label>Yearly Interest Rate:</label>
        <input type="text" name="interest_rate"
               value="<?php echo $interest_rate; ?>"/><br />

        <label>Number of Years:</label>
        <input type="text" name="years"
               value="<?php echo $years; ?>"/><br />
    </div>

    <div id="buttons">
        <label>&nbsp;</label>
        <input type="submit" value="Calculate"/><br />
    </div>

</form>

【问题讨论】:

  • 这可能是一本很老的书。它教的是哪个版本的 PHP?
  • 它不仅是空的,而且是未定义的。也许你的书是为不那么挑剔的 PHP 版本写的。
  • 书不老,2010年出版;它是“Murach 的 PHP 和 MySQL”。
  • 我用 替换了 php 语句,现在它似乎可以正常工作了。
  • $investment 是否曾经创建/定义过?您可能正在尝试回显一个不存在的变量。 PS:您可以使用该 if 语句的简写:&lt;?php echo (!empty($investment) ? $investment : ""); ?&gt;

标签: php html forms input echo


【解决方案1】:

这是因为您希望设置 register_globals 指令,而实际上并未设置。

这意味着你必须得到$_POST['investement']而不是$investment,你需要先检查它是否被提交:

$investment = array_key_exists('investment', $_POST) ? $_POST['investment'] : "";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多