PHP链接两个下拉菜单:首先向用户显示->提交秒值[隐藏]

Posted

技术标签:

【中文标题】PHP链接两个下拉菜单:首先向用户显示->提交秒值[隐藏]【英文标题】:PHP link two drop downs: Show first to users -> submit seconds value [hidden] 【发布时间】:2018-11-26 13:23:18 【问题描述】:

我有一个没有英文 UrlEncoded 值(%D8%B3%D9%84%D8) 的下拉菜单,如您所见,该值不是人类可读的格式。

<option value='$title_v'>" . $title . "</option>

在下一步我添加标签:

<option value='$title_v' label='".urldecode ($title)."'>" . $title . "</option>

它在除火狐之外的所有浏览器中都能完美运行(火狐不支持标签属性)

在下一步中,我在选项中解码了$title

<option value='$title_v' label='".urldecode ($title)."'>" . urldecode ($title) . "</option>"

但解码$title返回错误答案,ajax函数无法加载内容。

所以我写了另一行来检测firefox:

$browser = $_SERVER['HTTP_USER_AGENT'];
if (strpos($browser, 'Firefox') or strpos($browser, 'firefox') or strpos($browser, 'Mozilla') or strpos($browser, 'mozilla') !== false)

工作正常,所以如果 "firefox" = true :

我想以人类可读的格式向用户显示“新选择/选项”,用户可以阅读和选择他们想要的项目,但要提交值,请使用隐藏的原始编码“选择/选项”,但与“新选择/选项”同步

我可以吗?怎么样?

您知道更好的解决方案吗?

【问题讨论】:

使用有什么问题? &lt;option value='$title_v'&gt;" . urldecode ($title) . "&lt;/option&gt; 像这样:link &lt;option value='$title_v'&gt;" . urldecode ($title) . "&lt;/option&gt; 将为基于$title 的 ajax 加载函数返回错误字符串,并且 ajax 返回“未找到任何内容” 不,像这样:link 那么,您希望每个选项有多个数据字段吗? &lt;option value='$title_v' data-title='$title'&gt;" . urldecode ($title) . "&lt;/option&gt; 怎么样 【参考方案1】:

使用 jQuery 和第二个值字段。

$('select').on('change', function(e)
  alert($(this).find(':selected').val());
  alert($(this).find(':selected').data('value2'));
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option selected disabled>Select</option>
  <option value='text 2' data-value2="%D8%B3%D9%84%D8%A7%D9%85">only show this field</option>
</select>

【讨论】:

以上是关于PHP链接两个下拉菜单:首先向用户显示->提交秒值[隐藏]的主要内容,如果未能解决你的问题,请参考以下文章

下拉菜单和单选按钮不粘

下拉菜单选中后还是显示默认值

用存储过程填充下拉列表(显示用户名),然后向用户显示全名而不是用户名-慢

如何修复下拉菜单?所有选择显示“>”

WordPress 菜单位于标题之外

html 超链接,当鼠标指针悬浮到超链接时,显示出下拉菜单