javascript - JQuery AJAX - 填充文本框和下拉框

标签 javascript php jquery ajax

这是我第一次使用 JQuery AJAX,所以我对语法不是很熟悉。现在,我正在从数据库中提取一组值并填充下拉框。我需要 AJAX 做的是,当他们从下拉框中进行选择时,用硬编码信息填充其他三个字段。一旦 AJAX 正常工作,我就会查询数据库并根据下拉列表中的选择返回结果。

<div class="panel-body">
    <div class="form-group">
        <label for="nomName" class="col-sm-3 control-label">Name:</label> 
        <div class="col-sm-8">              
            <input type="text" class="form-control" data-validation="required" name="nomName" id="nomName" placeholder="Name" maxlength="50">           
        </div>
    </div>
    <div class="form-group">
        <label for="nomTitle" class="col-sm-3 control-label">Title:</label>
        <div class="col-sm-8">
            <input type="text" class="form-control" data-validation="required" name="nomTitle" id="nomTitle" placeholder="Title" maxlength="50">
        </div>
    </div>
    <div class="form-group">
        <label for="nomDept" class="col-sm-3 control-label">Department:</label>
        <div class="col-sm-8">
            <select class="form-control" name="nomDept" id="nomDept">
                <option value="" disabled selected>Select a Department...</option>
                <option value="Building Services">Building Services</option>
                <option value="Construction Management">Construction Management</option>
            </select>
        </div>
    </div>
    <div class="form-group">
        <label for="nomGUID" class="col-sm-3 control-label">AU Email/GUID:</label>
        <div class="col-sm-8">
            <select class="form-control" name="nomGUID" id="nomGUID">
                <option value="" disabled selected>Select a Person...</option>
                <?php
                while($row = mssql_fetch_array($user_list)){
                    echo "<option value=\"" . $row['id'] . "\">" . $row['id'] . "</option>";
                }
                ?> 
            </select>
        </div>
    </div>
</div>

这是我的 AJAX。我知道这是不正确的,所以如果有人提供解决方案,我将不胜感激。谢谢。

$(function() {
    var options = {
        "Option 1": "value 1",
        "Option 2": "value 2",
        "Option 3": "value 3"
    }
    $('#nomGUID').change(function() {
        $.ajax({
            url: 'test.php',
            success: function('#options') {
                $('#nomDept').empty();
                $('#nomTitle').html('Test AJAX');
            }
        })
    }
}

最佳答案

“success”用于传入回调处理程序。您可以使用匿名函数或命名函数来实现处理程序。您使用的语法是非法的,而且两者都不是。

阅读匿名函数: http://www.w3schools.com/js/js_function_definition.asp

我假设您对 test.php 的 AJAX 调用将返回某种 JSON 响应。例如:

{
    "title": "New Title",
    "foo": "bar",
    "baz": "qux",
    "departments": [
        "Building Services",
        "Construction Management"
    ]
}

您可以使用命名函数来实现成功回调函数。在回调中,您可以设置选项。

$.ajax({
    url: 'test.php',
    success: myAjaxSuccessHandler
});

function myAjaxSuccessHandler(data) {
    $('#nomDept').empty().append(
        $('#nomTitle').html(data.title);

        $.map(departments, function(element) {
            return $('<option></option>').val(element).text(element);
        })
    );
}

您还可以选择使用匿名函数,如下所示:

$.ajax({
    url: 'test.php',
    success: function(data) {
        $('#nomTitle').html(data.title);

        $('#nomDept').empty().append(
            $.map(departments, function(element) {
                return $('<option></option>').val(element).text(element);
            })
        );
    }
});

关于javascript - JQuery AJAX - 填充文本框和下拉框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663780/

相关文章:

javascript - 如何在不使用 hasClass() 的情况下检查表行是否具有类名?

php - 结果未在 PHP 中显示

javascript - 下拉菜单在CSS中折叠

javascript - 如何在 Ext JS 中设置 RadioGroup setValue() 函数?

javascript - Canvas 中一张图像上的 globalAlpha

javascript - 为没有在源中指定宽度和高度的图像获取图像尺寸

php登录密码_验证

javascript - 单击 anchor 标记后,jQuery 鼠标悬停不起作用

javascript - 缩放图像和视频以适应 iPad 屏幕

php - 如何将同一个表中的多个用户信息回显并分离到他们的每个页面