首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jquery的依赖下拉列表不能填充html文件。

使用jquery的依赖下拉列表不能填充html文件。
EN

Stack Overflow用户
提问于 2015-07-24 02:41:28
回答 1查看 80关注 0票数 0

我有两个下拉列表,其中第二个取决于第一个下拉列表选择。

我已经测试了getSalary和getamount,它可以获取数组,但不能加载到try.php。

有什么会出错的?这是我的密码。

try.php:

代码语言:javascript
复制
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="jquery-1.11.3.min.js"></script>
<script src="jquery-ui.js"></script>
<script src="script.js"></script>
</head>

<body>
Grade and Increment
<select name="salaryid"  id="salaryid" ></select>
<br>  

Salary Amount:
<select name="salaryamt"  id="salaryamt" ></select>

</body>
</html>

script.js:

代码语言:javascript
复制
$(document).ready(function () {
    $.getJSON("getSalary.php", success = function(data) {
        var options = "";
        for (var i = 0; i < data.length; i++)
        {
            options += "<options value='" + data[i].toLowerCase() + "'>" + data[i] + "</options>";
        }

        $("#salaryid").append(options);
        $("#salaryid").change();

    });

    $("#salaryid").change(function(){
        $.getJSON("getAmount.php?make=" + $(this).val(), success = function(data) {
            var options = "";
            for (var i = 0; i < data.length; i++)
            {
                options += "<options value='" + data[i].toLowerCase() + "'>" + data[i] + "</options>";
            }
            $("#salaryamt").html("");
            $("#salaryamt").append(options);
        });
    });
});

getSalary.php

代码语言:javascript
复制
<?php
include 'pmis_conn.php';

$qrysal = mysql_query("Select grade_incre from salary_ref where year = '2012'") or die(mysql_error());

$makes = array();

while($row = mysql_fetch_array($qrysal))
{
    array_push($makes, $row['grade_incre']);
}
echo json_encode($makes);
?>

getamount.php

代码语言:javascript
复制
<?php
if (isset($_GET["make"])) {
    include 'pmis_conn.php';

    $make = $_GET["make"];

    $qrysal = mysql_query("Select amount, year from salary_ref where grade_incre like '{$make}'") or die(mysql_error());

    $amount = array();

    while($row = mysql_fetch_array($qrysal))
    {
        //$amt = $row['amount'] + "-" + $row['year']
        array_push($amount, $row['amount']);
    }
    echo json_encode($amount);

}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 03:11:18

检查以下内容:

  1. GET php调用将按预期执行。
  2. javascript按预期触发。

调试GET调用:

为了调试,请尝试在Chrome中使用开发工具Ctrl+shift+I。在那里,请检查Network选项卡,查看ajax调用的情况。

在这里,手册:https://developer.chrome.com/devtools

这里有一个教程:http://discover-devtools.codeschool.com/

调试javascript:

开发工具中的Alvway继续使用Source,并在script.js上放置一些断点。

这里是调试js的手册:https://developer.chrome.com/devtools/docs/javascript-debugging

javascript中的附加问题:

正如您在这里看到的,https://jsfiddle.net/86vjfwLe/3/您的$(this).val()是空的。您应该尝试这个方法:jQuery get value of select onChange

关于html和on change的其他问题:

您正在注入的html已被破坏。您必须将options替换为option,并且它应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31601327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档