【问题标题】:How do i get the value of <select> from a populated option?如何从填充的选项中获取 <select> 的值?
【发布时间】:2021-05-08 05:28:40
【问题描述】:

目前停留在这个。

我正在尝试 $_POST 填充选项的选定选项。

**HTML:**
<label style="color:white">Date of Birth:</label>
<select id="months"></select>
<select id="days"></select>
<select id="years"></select>

**SCRIPT for the month populate:**
    for (i = 1; i < 13; i++){
        $('#months').append($('<option />').val(i).html(i));
    }

我试过了,$dmonth = $_POST['months'];但我得到未定义的索引。

使用 if(isset($_POST['months'])) 修复未定义索引会给我一个空值。

接下来我尝试通过以下方式获取文本值:

$('#months').find(":selected").text();

有没有办法获取文本值并将其传递给 PHP 变量?

【问题讨论】:

  • 您无法使用 PHP 读取客户端填充的输入。您必须将选择放在表单中,并且您可以在表单提交后使用 PHP 读取 $_POST 值。如果您不想提交表单但每次选择 ii 时都读取选择值,那么您必须使用带有 fetch 或 xhr 的 JavaScript 函数将值发送到 PHP 页面以读取值。
  • 您如何提交这些字段?使用阿贾克斯?如果它是一个“正常”的表单,那么你需要给选择一个name 属性(它将被存储在$_POST-array 中),否则它们根本不会被提交。跨度>
  • 很高兴你有礼貌,但它并没有真正回答我们的任何问题或给我们更多的继续。
  • 呵呵。老实说@MagnusEricksson 先生,这是我第一次尝试 HTML 和 PHP。先生,您所说的“正常”形式是指
    吗?
  • 不,我说的是基本的html form,不使用 JavaScript 提交它(比如使用 Ajax),但没关系,因为您的问题似乎已经解决了。

标签: php html


【解决方案1】:

我假设您已经有一个表单来放置您的选择。

对于填充选项,您可以考虑如下脚本:

for (i = 1; i < 13; i++){
    $('#months').append($('<option value="'+i+'">'+i+'</option>');
}

之后你可以得到选中的选项文本,做这样的事情(JS)

let selectedOptionText = ($("#months").val()) ? $("#months").find("option[value='"+$("#months").val()+"']").html() : '';

如果你想在服务器端传递这个 val,你应该考虑在你的 HTML 表单中添加一个隐藏的参数(只是一种可能的方式)。

但是.. 只是一个问题.. 当您可以简单地使用 type="date" 的输入时,为什么要使用这种方法?这也将帮助您进行格式检查和服务器端使用。

希望对你有所帮助

【讨论】:

  • 我有点喜欢下拉样式,所以我试了一下,但后来我改成了: 更简单且对移动设备友好。谢谢先生!
  • 我仍然会尝试使用您对隐藏参数的建议下拉,我会比较在移动浏览器中哪个更好。谢谢@Francesco 先生。
猜你喜欢
相关资源
最近更新 更多
热门标签