Javascript 获取更改了选择选项值的行的列的值

Javascript 获取更改了选择选项值的行的列的值,javascript,jquery,mysql,Javascript,Jquery,Mysql,我试图建立一个网页模型,允许用户给一些项目评分,并将这些评分存储在后台。我有一张这样的桌子 项目Id |标题|评级。在评级列中,我在某些列中有条件地选择标记,否则会有一些文本。我在select上添加了一个onchange事件,当option的值更改时,该事件触发了一个javascript函数,但我想提取select值更改所在行的project_id feld的值。我是一名javascript新手,因此我找不到任何可以解决我问题的方法,我需要该项目id值,因为我需要将该值存储在我的数据库中,我通过

我试图建立一个网页模型,允许用户给一些项目评分,并将这些评分存储在后台。我有一张这样的桌子 项目Id |标题|评级。在评级列中,我在某些列中有条件地选择标记,否则会有一些文本。我在select上添加了一个onchange事件,当option的值更改时,该事件触发了一个javascript函数,但我想提取select值更改所在行的project_id feld的值。我是一名javascript新手,因此我找不到任何可以解决我问题的方法,我需要该项目id值,因为我需要将该值存储在我的数据库中,我通过Ajax调用使其工作。下面是我的表格: 代码:


0
1.
2.
3.
4.
5.
Javascript:(我需要填充变量参数而不带值,以便使用Ajax将其发送到php脚本。)


功能评级()
{
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=函数(){
if(this.readyState==4){
if(this.status==400){
警惕(“评级时出现问题”);
}
if(this.status==200)
{
警报(“成功给出评级”);
window.location.reload(true);
}
}
};   
open(“POST”,“rating.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
变量参数=
xhttp.send(参数);
} 

要达到预期效果,请使用下面的选项

选项1:

  • 使用最近的tr和子项,可以在更改时获得完整的行值
  • 每个单元格都可以通过“eq().text()”获得
  • 代码笔-

    JS:

    选项2:对parentElement和childNodes使用普通javascript,并使用rating()onchange函数

    HTML:

    <select  onchange="rating(this)" class="form-control" name="projectrating">
    
    a、 parentElement将给出td封闭select,它的parentElement是tr元素,第一个子innerHTML给出第一列值


    首先,不能对一个元素使用多个ID

    <select id="rating" onchange="rating()" class="form-control" name="projectrating">
    
    所以你的js会是这样的

    function rating(){
    var paramToSend = document.getElementById("rating").value;
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState === 4) {
            if(this.status===400){
                alert("There was a problem while giving the rating");
            }
            if(this.status===200){
                alert("Rating given succesfully");
                //window.location.reload(true);
            }
    
        }
    };   
    xhttp.open("POST", "rating.php", true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var param="postedParam=" + paramToSend ;    
    xhttp.send(param); }
    

    因此,在您的rating.php中,您将获得$\u POST['postedParam']

    什么是rating()功能?请出示您的js-ToostedJavaScripthi,这可以用java脚本完成吗?我对jQuery库了解不多。请检查我的第二个代码笔-使用纯JavaScript,很高兴它对您的问题有所帮助。。如果对您有帮助,请将其标记为已回答:)您能告诉我这是如何工作的吗?太棒了。更新了我的答案。希望对您有所帮助:)
    <select  onchange="rating(this)" class="form-control" name="projectrating">
    
    function rating(a){
      console.log((a.parentElement) .parentElement.childNodes[1].innerHTML)
    }
    
    <select id="rating" onchange="rating()" class="form-control" name="projectrating">
    
    var paramToSend = document.getElementById("rating").value;
    
    function rating(){
    var paramToSend = document.getElementById("rating").value;
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState === 4) {
            if(this.status===400){
                alert("There was a problem while giving the rating");
            }
            if(this.status===200){
                alert("Rating given succesfully");
                //window.location.reload(true);
            }
    
        }
    };   
    xhttp.open("POST", "rating.php", true);
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    var param="postedParam=" + paramToSend ;    
    xhttp.send(param); }