2012-10-31 22 views
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; 

... 

問題是我收到上述回聲未定義的錯誤。我的問題是,我怎樣才能將module.php頁面中的$dbModuleId and $dbModuleName回顯到editsession.php頁面(上面的腳本)?

+0

的唯一方式上追加你的價值觀

$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); 

然後我能想到的是將值存儲在$ _SESSION變量中。這可能是凌亂的,你必須在完成之後重置$ _SESSION值。 – rws907

+0

您可以使用URL中的var值重定向到其他頁面:http://site.tld/?var = yourvarcontent然後在新頁面中使用$ _GET ['var']讀取var的值。 Idk如果安全是一個問題,如果是這樣,我不推薦這種方法。 –

+0

有沒有一種方法,而不是ajax實際導航到一個單獨的頁面,以便能夠檢索「模塊」下拉菜單的下拉值,如果我把code.php頁面的代碼放到同一頁面中editsession.php頁面,我可以以某種方式讓ajax訪問同一頁面內的下拉菜單嗎? – user1723760

回答

0

,如果你不想使用會話,你可以傳回自己的價值觀作爲一個JSON數組,然後對其進行解碼並與jQuery的頁面

<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; 
0

PHP腳本是在不同的請求期間調用的,還是它們包含在一起?如果請求不同,可以將變量存儲在$ _SESSION中,並在請求之間使用它。如果在同一個請求中,則該變量可以通過處於相同範圍內而可用,也可以使用全局關鍵字跨範圍共享。通常不建議

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

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

全局。還有全局數組的東西。取決於你是否在同一個請求中。

+0

嗨,jQuery的調用取決於用戶從editsession.php頁面的「課程」下拉菜單中選擇的內容。當用戶從「課程」下拉菜單中選擇一個選項時,它將使用ajax訪問module.php頁面,並根據選擇的課程顯示「模塊」下拉菜單中的值更改。那麼,我應該怎麼做? – user1723760

相關問題