1

ajaxを使用して別のページからモジュールを取得することにより、ドロップダウンメニューにモジュールのリストを表示できると思われるコードを以下に示します。

以下のコード

    $(document).ready( function(){

        jQuery.ajax({ 
        type: "post", 
        url:  "module.php", 
        success: function(response){ 
        jQuery('#modulesDrop').append(response); 
        } 
        }); 
    });

...

<?php

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

?>

module.php ページ:

<?php

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

     /* check connection */
     if (mysqli_connect_error()) {
    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(); 


    ?>

私が理解できないのは、ドロップダウンメニューが、「選択してください」オプションを表示するだけの Internet Explorer を除いて、すべての主要なブラウザーでモジュールのリストを表示することを管理していることです。Internet Explorer でドロップダウン メニューにリストを表示できないのはなぜですか?

アップデート:

ajax メソッドを破棄し、メインの php コードを元のスクリプトに貼り付けます。

4

3 に答える 3

4

独自のスクリプトでphpを使用して、同じスクリプトでphp/mysqliを使用して同じスクリプトを使用してモジュールを取得することをお勧めします

于 2013-01-15T13:56:46.193 に答える
1

この方法を試してください

    $(document).ready( function(){

        jQuery.ajax({ 
        type: "post", 
        url:  "module.php", 
        success: function(response){ 
        jQuery('#container').html(response); 
        } 
        }); 
    });

...

<?php

    $moduleHTML = "";  
    $moduleHTML .= '<div id="container">';
    $moduleHTML .= '</div>'; 

?>
//In here some where make sure you are echoing <?php echo $moduleHTML; ?>

そして、あなたのmodule.phpでここを変更してください

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

     while($sqlstmt->fetch()) { 
         $moduleHTML .= sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>'.PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
    } 
    $moduleHTML.='</select>';
于 2013-01-01T04:50:22.237 に答える
0

この jQuery('#modulesDrop').html(response); のように追加する代わりに、html 関数を選択する必要があります。

于 2013-01-01T04:15:04.307 に答える