启用最后一个JS函数时,动态下拉列表会中断

时间:2013-09-27 14:15:51

标签: javascript php dynamic

我正在设计一个动态下拉表格,帮助我的客户为他们选择合适的产品,并希望测试该功能以输出最终结果。当我添加JS函数以从最后一个下拉列表中获取信息并使用它来构建结果列表时,整个脚本似乎都会中断。我在Chrome中的控制台吐出Uncaught SyntaxError: Unexpected string(指向破坏的JS的第三行到最后一行),尽管它与我的其他函数几乎完全相同,除了一些变化的变量。

基本上,我使用JS从下拉列表中提取信息,这些信息使用GET将数据发送到PHP脚本。然后,该脚本使用该数据查询SQL DB,以动态构建下一个下拉列表的选项列表。在表单的最后一个下拉列表之后,JS将解析PHP脚本以接收一些数据(最终是一个表)并用该数据更新DIV。这是脚本中断的地方。添加最后一个JS函数会破坏脚本,同时删除脚本会使脚本保持正常工作。

您可以测试工作脚本 here 和损坏的脚本 here.

这是工作中的JS:

        $(function(){
            $("#type").change(function() {
                var tval = document.getElementById('type').value;
                $("#source").load(encodeURI("findbackend.php?type=" + tval));
            });
            $("#source").change(function() {
                sval = document.getElementById('source').value;
                $("#range").load(encodeURI("findbackend.php?source=" + sval));
            });
            $("#range").change(function() {
                rval = document.getElementById('range').value;
                $("#setpoint").load(encodeURI("findbackend.php?range=" + rval));
            });
            $("#setpoint").change(function() {
                stval = document.getElementById('setpoint').value;
                $("#dig_num").load(encodeURI("findbackend.php?range=" + rval + "&setpoint=" + stval));
            });
          });

这是破碎的JS:

        $(function(){
            $("#type").change(function() {
                var tval = document.getElementById('type').value;
                $("#source").load(encodeURI("findbackend.php?type=" + tval));
            });
            $("#source").change(function() {
                sval = document.getElementById('source').value;
                $("#range").load(encodeURI("findbackend.php?source=" + sval));
            });
            $("#range").change(function() {
                rval = document.getElementById('range').value;
                $("#setpoint").load(encodeURI("findbackend.php?range=" + rval));
            });
            $("#setpoint").change(function() {
                stval = document.getElementById('setpoint').value;
                $("#dig_num").load(encodeURI("findbackend.php?range=" + rval + "&setpoint=" + stval));
            });
            $("#dig_num").change(function() {
                dnum = document.getElementById('dig_num').value;
                $("#findresults").load(encodeURI("findbackend.php?range=" + rval + "&setpoint=" + stval "&dig_num=" + dnum));
            });
          });

我已经看了一百多次,无法弄清楚是什么打破了剧本。

如果您想看到PHP或其他任何内容,请告诉我。

提前致谢 任何 帮助。

同样,您可以查看工作脚本here和损坏的脚本here.

1 个答案:

答案 0 :(得分:1)

您忘记在stval之后添加“+”符号。

$("#findresults").load(encodeURI("findbackend.php?range=" + rval + "&setpoint=" + stval + "&dig_num=" + dnum));