【问题标题】:Pre checked check box [closed]预先选中的复选框 [关闭]
【发布时间】:2013-08-22 14:26:59
【问题描述】:

我有一个网站,可以通过多种方式访问​​我们的“给我发电子邮件以获取更多信息”表单。 在表单上,​​它有一个复选框列表,他们可以检查是否希望通过电子邮件收到有关更多信息的电子邮件。是否可以根据它们来自哪个页面预先选中复选框?

例如,他们访问我们的“产品 12”页面并点击表单的链接,并且有一个复选框用于接收有关产品 12 的更多信息,因为他们是从产品 12 页面来到表单的,所以该复选框已被预先选中。

这是我的表单代码:

<form id="formElem" name="formElem" action="" method="post">
  <fieldset class="step">
    <legend>Personal Details</legend>
    <p>
      <label for="fullname">Full Name</label>
      <input id="fullname" name="username" />
    </p>
    <p>
      <label for="company">Company Name</label>
      <input id="company" name="company" />
    </p>
    <p>
      <label for="title">Title</label>
      <input id="title" name="title" />
    </p>
    <p>
      <label for="phone">Phone Number</label>
      <input id="phone" name="phone" />
    </p>
    <p>
      <label for="email">Email</label>
      <input id="email" name="email" placeholder="info@.com" type="email" AUTOCOMPLETE=OFF />
    </p>
  </fieldset>
  <fieldset class="step">
    <legend>Products I'm interested in...</legend>
    <p>
      <input type="checkbox" name="telematics" value="telematics">Telematics<br>
    </p>
    <p>
      <input type="checkbox" name="controllers" value="controllers">Controllers<br>
    </p>
    <p>
      <input type="checkbox" name="cots" value="cots">Custom-off-the-Shelf<br>
    </p>
    <p>
      <input type="checkbox" name="displays" value="displays">Displays\Operator Interfaces<br>
    </p>
    <p>
      <input type="checkbox" name="cordReels" value="cordreels">Cord Reels<br>
    </p>
    <p>
      <input type="checkbox" name="pdm" value="pdm">Power Distribution Modules<br>
    </p>
    <p>
      <input type="checkbox" name="rtc" value="rtc">Real Time Clock<br>
    </p>
  </fieldset>
  <fieldset class="step">
    <legend>Services I'm interested in...</legend>
    <p>
      <input type="checkbox" name="productDev" value="productdev">Product Development<br>
    </p>
    <p>
      <input type="checkbox" name="desEng" value="deseng">Design Engineering<br>
    </p>
    <p>
      <input type="checkbox" name="dfx" value="dfx">DFX<br>
    </p>
    <p>
      <input type="checkbox" name="transServices" value="transServices">Transition Services<br>
    </p>
    <p>
      <input type="checkbox" name="stratSourcing" value="stratSourcing">Strategic Sourcing<br>
    </p>
    <p>
      <input type="checkbox" name="planning" value="planning">Planning<br>
    </p>
    <p>
      <input type="checkbox" name="manufacturing" value="manufacturing">Manufacturing<br>
    </p>
    <p>
      <input type="checkbox" name="fullfillment" value="fullfillment">Fullfillment<br>
    </p>
    <p>
      <input type="checkbox" name="prodLifecycle" value="prodLifecycle">Product Life-Cycle Management<br>
    </p>
  </fieldset>
  <fieldset class="step">
    <legend>Confirm</legend>
  <p>Everything in the form was correctly filled 
   if all the steps have a green checkmark icon.
   A red checkmark icon indicates that some field 
   is missing or filled out with invalid data.
  </p>
    <p class="submit">
      <button id="registerButton" type="submit">Register</button>
    </p>
  </fieldset>
</form>

服务器端代码将是 PHP。

请回复。

【问题讨论】:

  • 你有没有尝试过?您是否使用任何类型的服务器端语言,例如 PHP 或 ASP?
  • 这在很大程度上取决于他们如何到达相关页面,以及您是否具有服务器端脚本能力。您可能会使用 PHP 查看$_SERVER['HTTP_REFERER'],但这确实不能依赖。或者,您可以将会话变量设置为最后查看的项目。
  • “是否可以根据它们来自哪个页面预先选中复选框?” 是的。你试过什么?如果有任何需要,您需要提供更多详细信息和代码。
  • 是的,这绝对可以做到。但是您需要提供一些 HTML 标记,以便我们向您展示它是如何完成的。
  • 如果您使用的是服务器端编程语言,请通过GET 请求将参数发送到表单页面,然后选中相应的复选框。但是,如果您想在客户端做任何事情,请通过 JavaScript 从 url 获取 GET 参数,然后选中相应的复选框。

标签: php html css forms


【解决方案1】:

如果我处于您的位置,我会使用查询字符串变量在将您的产品页面链接到表单的链接上传递您的页面 ID(或产品 ID 是理想的)。

即)/formPage.html?id=12

在表单页面上,给每个输入元素一个唯一的 ID。然后使用服务器端代码或 javascript,检查 id 是否存在于查询字符串中,如果存在,检查它是什么并以编程方式检查您的复选框。

使用 jquery 很容易:

$("#product12ID").prop("checked", true);

了解您使用的语言(ASP.NET、PHP 等)会很有帮助。这将有助于微调前进的方向。

【讨论】:

  • 感谢您的回复。我将使用 PHP。
  • 我是一个 .NET 人,所以我不知道如何在 PHP 中做到这一点。我更新了我的答案以展示如何使用 jquery 来做到这一点。不过,我提到的相同过程也适用于 php。
猜你喜欢
  • 2020-10-21
  • 2015-03-03
  • 2023-04-01
  • 1970-01-01
  • 2012-02-08
  • 2012-01-20
  • 2021-01-01
  • 2023-03-11
  • 2022-01-05
相关资源
最近更新 更多