【问题标题】:Using HTML variable in PHP in .php from Select从 Select 的 .php 中使用 PHP 中的 HTML 变量
【发布时间】:2014-02-03 15:45:02
【问题描述】:

哇...所有类似的问题都有严重的反对意见。我想我也会服用一些,但已经坚持了几天,仍然卡住了。就这样吧……

以下所有代码都在 index.php 中:

<form action="index.php" method="get">
    <select name="month" id="month">
    <option value="1">jan</option>
    <option value="2">feb</option>
    <option value="3">mar</option>
    <option value="4">apr</option>
    <option value="5">may</option>
    <option value="6">jun</option>
    <option value="7">jul</option>
    <option value="8">aug</option>
    <option value="9">sep</option>
    <option value="10">oct</option>
    <option value="11">nov</option>
    <option value="12">dec</option>
</select>
</form>
<?php
$month = $_GET["month"];
echo "MONTH: $month";

$month 在 php 中是 NULL ($month 没有打印出来)。我希望能够在&lt;?php ?&gt; 中使用它来对其进行调整,然后在我的 HTML 中再次使用它。如何从 HTML 代码中获取用于 PHP 代码的值?

我想取 'value' 并将其分配给 '$month'

【问题讨论】:

  • 如果它为 null,则 url 中没有 GET 变量,呈现的页面(客户端)无法更改 php 中的任何内容,因为它已经执行(服务器端)
  • 我明白了。这到底是什么意思? (我是 HTML/PHP 新手)
  • 这对我有帮助吗? stackoverflow.com/questions/14311643/…
  • Using HTML variable 是什么意思?
  • 您需要设置一些 javascript 来使用 url 中的 get 变量执行页面更改,或者进行表单提交。

标签: php html variables null html-select


【解决方案1】:

html 页面上的更改无法更改 php 脚本中的内容,因为它已经在服务器端执行。您需要设置一些方法来将正确的变量添加到 url(因为您使用的是 $_GET ,它是查询字符串中 url 变量的数组,在 url 中的 ? 之后的名称值对)。

HTML

<select name="month" id="mySelect">
    <option value="1">jan</option>
    <option value="2">feb</option>
    <option value="3">mar</option>
    <option value="4">apr</option>
    <option value="5">may</option>
    <option value="6">jun</option>
    <option value="7">jul</option>
    <option value="8">aug</option>
    <option value="9">sep</option>
    <option value="10">oct</option>
    <option value="11">nov</option>
    <option value="12">dec</option>
</select>

JS

window.onload = function(){
   var select = document.getElementById("mySelect");
   select.onclick = function(){
      var selectval = this.value;
      window.location.href = "/somepage.php?month="+selectval;
   };
};

或者使用表单提交,使用GET方法的表单在提交时会将所有input/select/textarea元素值放入url中

<form action="somepage" method="GET">
   <select name="month" id="mySelect">
      <option value="1">jan</option>
      <option value="2">feb</option>
      <option value="3">mar</option>
      <option value="4">apr</option>
      <option value="5">may</option>
      <option value="6">jun</option>
      <option value="7">jul</option>
      <option value="8">aug</option>
      <option value="9">sep</option>
      <option value="10">oct</option>
      <option value="11">nov</option>
      <option value="12">dec</option>
   </select>
   <input type="submit" name="submit" value="Submit">
</form>

【讨论】:

  • 我已经更新了上面问题中的代码,但是还是不行。关于为什么不这样做的任何想法?
【解决方案2】:

PHP 是一种服务器端语言。您不能在客户端使用 php。如果您想在客户端做某事,请使用 JavaScript。
如果您想在您的 html 中使用 php,您必须刷新页面(参见 Patrik Evans 的回答),或者使用 Ajax。
如果您打算使用 ajax,因为它既快速又简单,请将您的 php 移动到另一个文件,例如 index-form.php 并通过 ajax get 方法调用它。



基本上,当您通过浏览器加载页面时,浏览器首先会从 DNS 中查找您的站点 IP。然后您的服务器将编译整个页面(忽略 html、js 和其他客户端脚本)并根据服务器类型编译 PHP、Perl、Python 等服务器端脚本。然后您的服务器会将编译后的页面发送到您的浏览器,浏览器将读取它,编译客户端脚本并将其呈现在您的视口中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 2011-07-28
    • 2017-03-01
    • 2014-12-20
    • 2016-09-25
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多