如何根据页面(URL)选择选项

  • 本文关键字:URL 选择 选项 何根 jquery
  • 更新时间 :
  • 英文 :


我创建了一个下拉列表,其中包含多个用户记录的下拉列表。当我选择第一个选项时,页面重定向到打开用户详细信息页面的链接。现在,我想在选择选项字段中设置选定的用户。这是我的代码

<select class="user">
<?php foreach($user as $key => $value): ?>
<optgroup label=  <?php echo $key; ?> >
<?php foreach($value as $row): ?>
<option value="<?php echo $row['id'] ?>" class="key-select-option">
<?php echo $row['name'] .' & '. $row['roll_number'] ?>
</option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>
</select>

$('.user').on('change', function() {
var userId = $(this).val();
var url = 'https://localhost/user/' + userId;
window.location.href = url;
});

这段代码将我重定向到另一个页面,但如何在下拉列表中进行选择?

首先需要使用window.location.pathname获取URL。然后将其除以/(.split('/')(,得到该数组的最后一个值([array.length - 1](。最后,使用.val('userId')在JS中设置该值。综合起来:

let parts = window.location.pathname.split('/');
let userId = parts[parts.length-1];
$('.user').val(userId);
$('.user').on('change', function() {
var userId = $(this).val();
var url = 'https://localhost/user/' + userId;
window.location.href = url;
});

这在PHP中也是可能的。获取URL的最后一部分:

// $_SERVER['REQUEST_URI'] = 'https://localhost/user/1234';
$array = explode('/', $_SERVER['REQUEST_URI']);
$userId = end($array);
echo $userId;

然后,如果值匹配,您可以使用它并更新模板来设置selected属性:

<?php
$array = explode('/', $_SERVER['REQUEST_URI']);
$userId = end($array);
?>
<select class="user">
<?php foreach($user as $key => $value): ?>
<optgroup label="<?php echo $key; ?>">
<?php foreach($value as $row): ?>
<option value="<?php echo $row['id'] ?>" class="key-select-option" <?php echo $row['id'] == $userId ? 'selected' : ''; ?>>
<?php echo $row['name'] .' & '. $row['roll_number'] ?>
</option>
<?php endforeach; ?>
</optgroup>
<?php endforeach; ?>

注意,我还在optgroup标签周围添加了双引号,因为它们丢失了。

最新更新