0

我试图通过将我的 jquery 自动完成代码移动到 scripts.js 文件来保持 DRY 原则,但是当我移动它时我无法让自动完成功能正常工作。

这是它目前的设置方式。

添加表格

    <head>
    <?php
     require_once ('includes/connect-db.php');
     require_once ('includes/functions.php');
    ?>
        <link href="css/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css">
        <script type="text/javascript" src="includes/js/jquery-ui-1.8.21.custom.min.js"></script>
        <script type="text/javascript">


        $('document').ready(function() {
            $('#datepickerID').datepicker({
                changeYear:true,
                changeMonth:true,
                dateFormat:'yy-mm-dd'
            })

        <?php $productArray = autoComplete();?>

        $(function() {

                var js_products_array = <?php echo json_encode($productArray); ?>;

                $( "#autocompleteID" ).autocomplete({
                    source: js_products_array
                 });
            });

        });

        </script>
</head>

当javascript中嵌入了php代码时,我不确定如何在addForm.php和scripts.js之间工作,如果这有意义的话。

4

1 回答 1

1

您将不得不保留js_products_array.js文件之外,因为它包含来自 PHP 脚本的数据并autocomplete()准备好启动文档。

所以你只能保留

<?php $productArray = autoComplete();?>
<script type="text/javascript">
    var js_products_array = <?php echo json_encode($productArray); ?>;
</script>

在你的file.js你可以添加

 $('document').ready(function() {
     $('#datepickerID').datepicker({
           changeYear:true,
           changeMonth:true,
           dateFormat:'yy-mm-dd'
     })

     $( "#autocompleteID" ).autocomplete({
           source: js_products_array
     });
 });
于 2012-08-20T10:10:08.743 回答