使用PHP从<option>标签获取文本

Abd*_*hab 12 php text get option

我想在<option>标签内部获取文本及其值.

<select name="make">
<option value="5"> Text </option>
</select>
Run Code Online (Sandbox Code Playgroud)

我用过$_POST['make']; ,我得到了价值,5但我想得到价值和文字.

我怎么能用PHP做到这一点?

ser*_*orm 7

为了仅使用PHP获得标签和值,您需要将两个参数都作为值的一部分。

例如:

<select name="make">
    <option value="Text:5"> Text </option>
</select>
Run Code Online (Sandbox Code Playgroud)

PHP代码

<?php
$parts = $_POST['make'];
$arr = explode(':', $parts);

print_r($arr);
Run Code Online (Sandbox Code Playgroud)

输出:

Array(
  [0] => 'Text',
  [1] => 5
)
Run Code Online (Sandbox Code Playgroud)

这是做到这一点的一种方法。

  • 对于有关此问题的所有答复,我认为这是最优雅的答复。会这样 (2认同)

arm*_*ani 5

那这个呢?我认为这是最好的解决方案,因为每个数据都有单独的字段。只有一个隐藏字段在每次更改时都会更新,并避免硬编码映射。

HTML 内部:

<select name='make' onchange="setTextField(this)">
<option value = '' selected> None </option>
<option value = '5'> Text 5 </option>
<option value = '7'> Text 7 </option>
<option value = '9'> Text 9 </option>
</select>
<input id="make_text" type = "hidden" name = "make_text" value = "" />
<script type="text/javascript">
    function setTextField(ddl) {
        document.getElementById('make_text').value = ddl.options[ddl.selectedIndex].text;
    }
</script>
Run Code Online (Sandbox Code Playgroud)

PHP 内部:

<?php
$value = $_POST["make"];
$text = $_POST["make_text"];
?>
Run Code Online (Sandbox Code Playgroud)


the*_*ist 3

将文本的值设置为选项标记的值,无论是通过静态 HTML 标记还是由服务器端脚本生成。您只能通过 POST 获取 value 属性

然而,在服务器端,另一个选择是将值(“5”)映射到关联数组,即

<?php
$valueTextMap = array("5" => "Text");

$value = $_POST['make'];  //equals 5
$text = $valueTextMap[$value];  //equals "Text"
?>
Run Code Online (Sandbox Code Playgroud)