4

これが可能かどうかはわかりませんが、このページには次のコードがあります。

$moduleHTML  = "";  

 while($sqlstmt->fetch()) { 
    $moduleHTML .= "<option value='$dbModuleId'>" . $dbModuleId . " - " . $dbModuleName . "</option>".PHP_EOL;  
    $outputmodule = ""; 
        $outputmodule .= "<p><strong>Module:</strong> " . $dbModuleId .  " - "  . $dbModuleName . "</p>"; 
} 

$outputmoduleしかし、別のページで変数をエコーし​​たいです。したがって、以下は、上記のスクリプト (module.php) にリンクする ajax を含む他のページのコードであり、エコーが含まれている場所と、モジュールのドロップダウン メニューの一部が含まれている場所です。

  <script type="text/javascript">

    function getModules() { 
    var course = jQuery("#coursesDrop").val(); 
    jQuery('#modulesDrop').empty(); 
    jQuery('#modulesDrop').html('<option value="">Please Select</option>'); 
    jQuery.ajax({ 
    type: "post", 
    url:  "module.php", 
    data: { course:course }, 
    success: function(response){ 
    jQuery('#modulesDrop').append(response); 
    } 
    }); 


    }


    </script> 

...

<?

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

echo $outputmodule;

...

問題は、上記のエコーで未定義のエラーが発生することです。私の質問は$dbModuleId and $dbModuleName、module.php ページから editsession.php ページ (上記のスクリプト)にどのようにエコーすることができるかということです。

4

2 に答える 2

0

php スクリプトはさまざまなリクエストで呼び出されますか、それとも相互に含まれていますか? 異なるリクエストの場合、変数を $_SESSION に保存し、リクエスト間で使用できるようにすることができます。同じリクエスト内にある場合、変数は同じスコープ内にあることによって利用可能になります。または、global キーワードを使用してスコープ間で共有することもできます。

http://php.net/manual/en/features.sessions.php

http://php.net/manual/en/language.variables.scope.php

通常、グローバルは推奨されません。そして、グローバル配列のことです。同じリクエスト内にいるかどうかによって異なります。

于 2012-10-31T02:39:19.193 に答える
0

セッションを使用したくない場合は、値をjson配列として返し、それをデコードしてjqueryで値を追加できます

   $outputArray = array();  

     while($sqlstmt->fetch()) { 
        $outputArray['moduleHTML'] = "<option value='$dbModuleId'>" . $dbModuleId . " - " . $dbModuleName . "</option>".PHP_EOL;  

        $outputArray['outputModule']  = "<p><strong>Module:</strong> " . $dbModuleId .  " - "  . $dbModuleName . "</p>"; 
    } 
    echo json_encode($outputArray);

次に、あなたのページで

<script type="text/javascript">

function getModules() { 
    var course = jQuery("#coursesDrop").val(); 
    jQuery('#modulesDrop').empty(); 
    jQuery('#modulesDrop').html('<option value="">Please Select</option>'); 
    jQuery.ajax({ 
        type: "post", 
        url:  "module.php", 
        data: { course:course }, 
        success: function(response){
            var outputjQuery.parseJSON(response)
            jQuery('#modulesDrop').append(output.moduleHTML); 
            jQuery('#outputModule').html(output.outputModule); 
       });
    }); 


}


</script> 

...

<?

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

echo $moduleHTML;
于 2012-10-31T02:59:21.150 に答える