Javascript 分配给HTML输入的变量';JS脚本无法理解通过PHP传递的s值

Javascript 分配给HTML输入的变量';JS脚本无法理解通过PHP传递的s值,javascript,php,mysql,ajax,charts,Javascript,Php,Mysql,Ajax,Charts,我正在做一个网站的项目,它显示了一个图表。用户应该能够通过单击下拉选项中的“可用传感器”来更改显示的图表(无需更改网站)。下拉列表连接到MySQL数据库和使用过的传感器。传感器的id分配给HTML输入id,其名称分配给输入值 我的意图是在另一个data.php文件中使用传感器ID,该文件负责使用传感器收集的数据连接到表(MySQL)。这个ID将告诉这个程序应该连接哪些表 目前,JS脚本的任务是在单击下拉菜单时提醒所选传感器的ID。我收到的信息不是一个数字,而是“未定义”。最终,它会将存储的id传

我正在做一个网站的项目,它显示了一个图表。用户应该能够通过单击下拉选项中的“可用传感器”来更改显示的图表(无需更改网站)。下拉列表连接到MySQL数据库和使用过的传感器。传感器的id分配给HTML输入id,其名称分配给输入值

我的意图是在另一个data.php文件中使用传感器ID,该文件负责使用传感器收集的数据连接到表(MySQL)。这个ID将告诉这个程序应该连接哪些表

目前,JS脚本的任务是在单击下拉菜单时提醒所选传感器的ID。我收到的信息不是一个数字,而是“未定义”。最终,它会将存储的id传输到提到的data.php文件

您能告诉我在这种情况下是否有必要使用AJAX,或者我的代码中出现这种错误的可能原因是什么吗

我也试着用按钮代替输入。单击下拉列表中的传感器名称时,我只收到带有“1”的消息。然而,分配
sensorName
在这两种情况下都有效。传感器ID在MySQL表中存储为INT,名称为VARCHAR

提前感谢您的帮助:)



getElementsByClassName
返回至少一个项的数组(如果找到)。您必须提供要使用的元素的索引

例子
请检查此代码,工作正常

            <input type="submit" id="btn" value="Available sensors" class="btn btn-success" />

            <div class="dropdown-content">
                <?php
                    include("config.php");
                    $sql = "SELECT * FROM sensors";
                    $result = $db->query($sql);

                    if($result->num_rows > 0){
                        while($row = $result->fetch_assoc()){
                            $sensorID = $row["id"];
                            $sensorName = $row["WebName"];
                ?><input onclick="changeSensorID(event)" onmouseover="this.style.textDecoration='underline'"
                                onmouseout="this.style.textDecoration='none'" class="btn_drop" id="<?php echo $sensorID ?>"
                                value="<?php echo $sensorName ?>" /></a>


                        <?php
                        }
                    }
                        ?>

            </div>
           <script >
                function changeSensorID(event){
                    var sensorID = event.target.id;
                    alert(sensorID);
                }
            </script>


        </div>



document.getElementsByClassName(“btn\u drop”)
返回多个元素,而不仅仅是一个元素。您必须使用类似于
document.getElementsByClassName(“btn_drop”)[0]的东西。id
我已更改了代码,并且它会再次显示每个传感器带有“1”的消息。有什么建议吗?如果有任何问题,请在这里发布,我会很快抓住你的。请添加一个解释,说明你所做的更改以及它解决问题的原因。你获取ID的语法是错误的。var sensorID=document.getElementsByClassName(“btn_drop”).id;为此,我使用了基于事件的JavaScript代码。
var sensorID = document.getElementsByClassName("btn_drop")[0].id;
            <input type="submit" id="btn" value="Available sensors" class="btn btn-success" />

            <div class="dropdown-content">
                <?php
                    include("config.php");
                    $sql = "SELECT * FROM sensors";
                    $result = $db->query($sql);

                    if($result->num_rows > 0){
                        while($row = $result->fetch_assoc()){
                            $sensorID = $row["id"];
                            $sensorName = $row["WebName"];
                ?><input onclick="changeSensorID(event)" onmouseover="this.style.textDecoration='underline'"
                                onmouseout="this.style.textDecoration='none'" class="btn_drop" id="<?php echo $sensorID ?>"
                                value="<?php echo $sensorName ?>" /></a>


                        <?php
                        }
                    }
                        ?>

            </div>
           <script >
                function changeSensorID(event){
                    var sensorID = event.target.id;
                    alert(sensorID);
                }
            </script>


        </div>