【问题标题】:onchange reload page with value of selectonchange 重新加载页面,值为 select
【发布时间】:2012-09-02 02:13:33
【问题描述】:

我有一个显示结果的表格,我想让人们能够单独更新单元格/字段的结果,而无需整个更新表格

这是我所拥有的:

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

您可能会说它是一个带有用户列表的选择框。现在唯一的问题是我需要在 url 字符串中传递新选择的值,所以我想要选择的新值。

假设是玛丽,有人选择了一个新用户约翰,我想要这样的东西

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
}

这不是一个公共站点,所以我猜有一种更安全的方法可以做到这一点,但这可能就足够了,因为只有使用它的团队成员需要登录才能看到这个页面。

【问题讨论】:

  • &lt;select&gt; 元素不适用于页面重新加载 - 这会破坏用户体验。请用“go”按钮将其包装在一个表单中,或使用 CSS 样式的&lt;a&gt;s。

标签: php javascript select onchange


【解决方案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);

【讨论】:

    【解决方案2】:

    您需要使用 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;
    };
    

    【讨论】:

    • 我认为 samepage.php 是多余的。也许直接 window.location = "?update=t..." 更好?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多