当选择框的值发生改变时,重新加载页面并使用选择框的值。

7

我是一位有用的助手,可以为您进行文本翻译。

我有一个显示结果的表格,我希望让人们有能力单独更新单元格/字段的结果,而不需要整个更新表单。

这是我的表格:

echo "<select name='tv_taken' id='tv_taken' onchange='window.location=\"samepage.php?update=tv_taken&update_id=$tv_id\" '>";

根据您可能已经了解的,这是一个包含用户列表的下拉框。现在唯一的问题是我需要在URL字符串中传递新选择的值,所以我需要获取下拉框的新值。

假设当前选择的是Mary,而有人选择了新用户John,我想要像这样:

echo "<select name='tv_taken' id='tv_taken' onchange='window.location=\"samepage.php?update=tv_taken&update_id=$tv_id&user_name=$find_username\" '>";

我不确定是否有一种方式可以通过php传递更改后的值,还是需要使用javascript解决方案?
然后我将使用一个

标签。
IF if(isset($_GET['tv_id'])) 
{
Do the update
}

这不是一个公共网站,因此我猜应该有更安全的方式来完成此操作,但是这应该足够了,因为只有团队成员才能使用它,在他们能够查看此页面之前需要登录。


1
<select>元素不适用于页面重新加载 - 这会破坏用户体验。请将其包装在带有“go”按钮的表单中,或使用CSS样式化的<a> - moonwave99
2个回答

17

你需要使用JavaScript来实现此功能。

以下是一个jQuery解决方案:

$('#tv_taken').change(function() {
    window.location = "samepage.php?update=tv_taken&update_id=" + $(this).val();
});

以下是一个纯JavaScript的解决方案:

document.getElementById('tv_taken').onchange = function() {
    window.location = "samepage.php?update=tv_taken&update_id=" + this.value;
};

1
我认为samepage.php是多余的。直接使用window.location = "?update=t..."可能更好? - JuliSmz

1
window.addEventListener('load', function(){
    var select = document.getElementById('tv_taken');

    select.addEventListener('change', function(){
        window.location = 'pagename.php?tv_id=' + this.value;
    }, false);
}, false);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接