0

我在下面有一个 jquery 代码,它显示在editsessionadmin.php页面中。现在假设发生的是,当打开此页面时,将执行 jquery/ajax 功能,以便导航到module.php页面以便能够从查询中选择模块列表,将每个模块显示为选项并在页面的模块下拉菜单中显示这些选项editsessionadmin.php

我的问题是它没有这样做。jquery/ajax 没有做任何事情,因为脚本中的 Module 下拉菜单editsessionadmin.php不包含除选项之外的任何Please Select选项。

有人知道如何修复 jquery/ajax 代码以执行我希望它执行的操作吗?

下面是editsessionadmin.php代码:

            <script type="text/javascript">

            $(document).ready( function(){
            function getModules() { 
            jQuery.ajax({ 
            type: "post", 
            url:  "module.php", 
            success: function(response){ 
            jQuery('#modulesDrop').append(response); 
            } 
            }); 
    });
            }
            </script>


....

<?php

    $moduleHTML = "";  
    $moduleHTML .= '<select name="modules" id="modulesDrop">'.PHP_EOL; 
    $moduleHTML .= '<option value="">Please Select</option>'.PHP_EOL;  
    $moduleHTML .= '</select>'; 


?>

module.php 页面:

`

     // connect to the database
 include('connect.php');

 /* check connection */
 if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
die();
}

$moduleactive = 1;

$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo"; 


 $sqlstmt=$mysqli->prepare($sql);

 $sqlstmt->bind_param("i", $moduleactive);

 $sqlstmt->execute(); 

 $sqlstmt->bind_result($dbModuleId,$dbModuleNo,$dbModuleName);


$moduleHTML  = "";  

 while($sqlstmt->fetch()) { 
     $moduleHTML .= sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>'.PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
} 


echo $moduleHTML; 

 $sqlstmt->execute(); 


?>`
4

1 回答 1

2

您的代码看起来像是在准备好文档时创建一个函数,但从未调用它。而且看起来你的括号有点乱。通过缩进代码,这变得更加明显。

$(document).ready( function(){
    function getModules() { 
        jQuery.ajax({ 
            type: "post", 
            url:  "module.php", 
            success: function(response){ 
                jQuery('#modulesDrop').append(response); 
            } 
        }); 
});
    } <--- This should be swapped with the line above

您可以做的是删除最后的行function getModules() {和备用},然后它应该可以工作或至少在 FireBug 中为您提供另一个 GET。

于 2012-12-07T03:22:32.557 回答