2

我正在使用 JS/Ajax 函数从选择框中回显选定的值。我正在使用 MySQL DB 中的值填充这些选择框。该功能适用​​于文本输入字段,但现在我将它与这些选择框一起使用,我没有得到任何响应。

我可以用 JS 从选择框中回显所选值吗?或者,还有更好的方法?例子

JS

 <script>
    $(document).ready(function() { 
        var timer = null;  
        var dataString;    
        function submitForm(){ 
            $.ajax({ type: "POST", 
                url: "index.php", 
                dataType: 'json', 
                success: function(result){ 
                $('#special').html('<p>' +  $('#resultval', result).html() + '</p>');} 
                                  }); 
            return false; 
        } 
        $('#category_form').on('change', function() { 
            clearTimeout(timer); 
            timer = setTimeout(submitForm, 2000); 
        }); 
    });  
    </script>

PHP/HTML

try {

    $pdo = get_database_connection();   

    $sql = "SELECT * 
            FROM `categories`
            WHERE `master_id` = 0";
    $statement = $pdo->query($sql);
    $list = $statement->fetchAll(PDO::FETCH_ASSOC);


} catch(PDOException $e) {
    echo 'There was a problem';
} 

    <form action="" method="post" id="category_form'" name="category_form'">

            <select name="main" id="main" size="7" class="update">
                <option value="">Select one</option>
                <?php if (!empty($list)) { ?>
                    <?php foreach($list as $row) { ?>
                        <option value="<?php echo $row['id']; ?>">
                            <?php echo $row['name']; ?>
                        </option>
                    <?php } ?>
                <?php } ?>
            </select>

            <select name="subc1" id="subc1" size="7" class="update"
                disabled="disabled" hidden="hidden">
                <option value="">----</option>
            </select>

            <select name="subc2" id="subc2" size="7" class="update"
                disabled="disabled" hidden="hidden">
                <option value="">----</option>
            </select>

            <select name="subc3" id="subc3" size="7" class="update"
                disabled="disabled" hidden="hidden">
                <option value="">----</option>
            </select>

        </form>

    <div id="special"></div>
4

1 回答 1

1

看起来您使用 jQuery 选择了错误的元素。

改变:

$('#category_form').on('change', function() { 
            clearTimeout(timer); 
            timer = setTimeout(submitForm, 2000); 
        }); 

至:

$('#main').on('change', function() { 
            clearTimeout(timer); 
            timer = setTimeout(submitForm, 2000); 
        }); 
于 2012-07-22T05:58:16.710 回答