【问题标题】:Dynamic form fields with PHP使用 PHP 的动态表单字段
【发布时间】:2012-10-28 06:48:19
【问题描述】:

我正在为以下问题寻找解决方案/最佳实践。

我有一个带有一个下拉列表和一个提交按钮的 HTML 表单的页面。下拉框下方是一个空白空间,我想根据下拉框中的选定值填充表单输入。我认为这可以在 JavaScript 中完成,但如果可能的话,我更喜欢 PHP/客户端解决方案。

示例 HTML:

<form name="initialdropdown" action="#" method="post">
    <select name="action">
    <option value="default">--select--</option>
    <option value="a">Option 1</option>
    <option value="b">Option 2</option>
    <option value="c">Option 3</option>
    <option value="d">Option 4</option>
    </select>
    <input type="submit" name="submit" value="submit"></input>
</form>

我已经探索过从表单操作调用这个 php 脚本:

    <?php

    $getOption = $_POST['action'];
    $addUrl = $getOption.".php";

    include $addUrl;
    header("Location: htmlpage.php");

    ?>

然后创建几个不同的 php 文件(a.php、b.php、c.php 等。在每个文件中,然后包括我想在函数中回显的 HTML 表单,并包括功能在主 HTML 页面中。我不觉得这是一个好方法。任何人都可以阐明最好的方法吗?

【问题讨论】:

  • 我认为您可以在这里相信自己的感受。但是我真的不明白你的问题。例如,不清楚这些a-d.php 文件中的内容是什么?为什么在包含这些之后重定向?
  • 这段代码似乎容易受到远程代码注入和xss的影响
  • 抱歉不清楚。 a-d.php 文件每个都包含 1 个函数,该函数回显我想在初始下拉列表下显示的新 HTML 表单。我重定向是因为表单操作调用了另一个 php 脚本,该脚本从主 HTML 页面重定向。

标签: php html


【解决方案1】:

如果您想在选择不同选项时更新的 HTML 表单上显示某些内容,JavaScript 是自然的选择,因为您不必去向服务器发出请求,这意味着移动数据并等待响应。当用户与页面交互时,JavaScript 可以简单地更改页面任意多次。

但是,如果您一心想用 PHP 生成您想在该表单上显示的任何内容,您可以让 PHP 将显示信息直接输出到页面的 JavaScript 中。然后 JavaScript 显示来自 PHP 的数据。或者,您可以使用对 PHP 的 AJAX 调用来请求在每次选择不同选项时显示数据。

更新

鉴于您的最新评论,您可以非常轻松地设置更多表单选项,而无需使用 PHP。在 HTML 中设置您可能想要显示的所有各种表单选项,但使用 CSS 隐藏可选部分。然后根据需要使用一点 JavaScript 显示每个部分。 jQuery 可以让这变得更容易。

【讨论】:

  • 感谢您的回答和更新。我一直在避免使用 JavaScript,因为我在该领域知之甚少。我认为您提到的 CSS 解决方案将很容易实现,并且我找到了一个快速教程,可以帮助我创建 JS。再次感谢您的帮助!
  • 不客气。如果您对 JavaScript 不满意,请查看 jQuery——它是一个 JavaScript 库,添加了许多非常有用且跨浏览器兼容的功能,并且它使用 CSS 选择器做了很多很棒的事情。隐藏 ID 为 hideme 的 div 就像 $("#hideme").hide(); 一样简单。我发现基础很容易,我一直在使用它。看看,jquery.com
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 2010-10-30
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 2016-08-16
  • 1970-01-01
相关资源
最近更新 更多