【问题标题】:get with php text (not values) of options in form获取表单中选项的 php 文本(不是值)
【发布时间】:2011-12-23 06:01:10
【问题描述】:

我有简单的 html:

<select id="rodzajp" name="Rodzaj_pakietu"">
<option value="10">Pak 1</option>
<option value="20">Pak 2</option>
<option value="30">Pak 3</option>
<option value="40">Pak 4 bla </option>
<option value="50">Pak 5 bla bla</option>
</select>

和php:

$Rodzajp = $_POST['Rodzaj_pakietu'];

通过这些行,我得到了所选选项的价值。 如何使用 php 选择的选项文本 (Pak 1, Pak 2, Pak 3...) 而不是值 (10, 20, 30..),我需要数学形式的值?

【问题讨论】:

    标签: php html forms option


    【解决方案1】:

    浏览器仅返回 OPTION 标记的 value 参数中的内容。如果您想知道“10”是什么,您需要在您的服务器上有一个用于转换的数组。

    请注意,您的“name”属性中还有一个额外的 "。

    【讨论】:

    • 谢谢,但我会有更多具有相同价值的选项。顺便说一句,感谢您注意到“”:)
    【解决方案2】:

    除非 PHP 首先生成 &lt;select&gt;,否则只有一种方法可以使用表单提交文本:

    <select>
       <option>Sometext</option>
    </select>
    

    由于选项标签上没有value 属性,浏览器将改为发送Sometext

    一旦设置了value 参数,就只会发送该值。您可以修改一些 javascript,以便在提交时将这两个数据位复制到表单中,但这是一个丑陋的 hack。

    【讨论】:

      【解决方案3】:

      我认为,由于您无法在选项字段上设置值,因此您可能需要尝试一些 javascript。例如,尝试在您的表单中创建一个隐藏字段,然后在您的选项标签上添加 JS,例如:

      onclick="document.getElementById('my_hidden_field').value = 10";

      这可能有问题..你可能不得不玩,但我希望你明白我在说什么 - 使用 JS 将隐藏的输入值动态更改为你想要的值,然后从另一边获取那个值与 PHP 类似:

      $Rodzajp = $_POST['my_hidden_field'];

      编辑:

      再想一想,onclick 事件不会在选项字段上起作用.. 这段代码应该做我们想做的事:

      JS:

      function changeFunc() {
      var selectBox = document.getElementById("rodzajp");
      var selectedValue = selectBox.options[selectBox.selectedIndex].value;
      
      document.getElementById('my_hidden_field').value = selectedValue;
      
      }
      

      HTML:

      <select id="rodzajp" name="Rodzaj_pakietu" onchange="changeFunc();">
      <option value="10">Pak 1</option>
      <option value="20">Pak 2</option>
      <option value="30">Pak 3</option>
      <option value="40">Pak 4 bla </option>
      <option value="50">Pak 5 bla bla</option>
      </select>
      
      <input type="hidden" value="" id="my_hidden_field" />
      

      PHP:

      $Rodzajp = $_POST['my_hidden_field'];
      

      【讨论】:

      • 这真的很有帮助.. 在你的 JS 中更改一行之后:) 从: var selectedValue = selectBox.options[selectBox.selectedIndex].value; to: var selectedValue = selectBox.options[selectBox.selectedIndex].label;我得到了我需要的一切:带有值的数学正在工作,并且表单知道将什么作为选择的选项:) THX 很多
      猜你喜欢
      • 2019-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多