2017-05-22 148 views
0

我正在研究基於我的數據庫中的內容形成網頁的腳本。對於他而言,我在頁面加載時以及頁面需要更新時調用java腳本函數。獲取從PHP到JavaScript的變量(在PHP變量更改後echo不更新)

首先我做了一個腳本,從數據庫中獲取信息,通過echo "var region_list = ". $js_region_list . ";\n";將它傳遞給java腳本,然後繼續生成工作的頁面本身。

之後,我試圖讓這個工作基於AJAX請求,但這個失敗可怕。按照現狀,我從數據庫中獲得正確的信息,但它不會更改阻止頁面更新的值echo "var region_list = ". $js_region_list . ";\n";。我的腳本

PHP的一部分:

if(isset($_POST["campaign_id"])){ 
// Get variables and sanetize 
$campaign_id = preg_replace('#[^0-9]#i', '', $campaign_id); 

// Create planet list 
$planet_list = array(); 
$sql = "SELECT planet_nr, size, moon FROM planets WHERE campaign_id = $campaign_id"; 
if ($result = mysqli_query($db_conx, $sql)) { 
    /* fetch associative array */ 
    while ($row = mysqli_fetch_assoc($result)) { 
     array_push($planet_list, array($row["planet_nr"],$row["size"],$row["moon"])); 
    } 
    /* free result set */ 
    mysqli_free_result($result); 
} 

// Create region list 
$region_list = array(); 
$sql = "SELECT planet_id, region_id, region_type, owner FROM regions WHERE campaign_id = $campaign_id"; 
if ($result = mysqli_query($db_conx, $sql)) { 
    /* fetch associative array */ 
    while ($row = mysqli_fetch_assoc($result)) { 
     array_push($region_list, array($row["planet_id"],$row["region_id"],$row["region_type"],$row["owner"])); 
    } 
    /* free result set */ 
    mysqli_free_result($result); 
} 

// Convert array's for use in java 
$js_planet_list = json_encode($planet_list); 
$js_region_list = json_encode($region_list); 

$list = array($planet_list, $region_list); 
$list = json_encode($list); 
echo $list; 
exit(); 

JavaScript部分:

<?php 
echo "var planet_list = ". $js_planet_list . ";\n"; 
echo "var region_list = ". $js_region_list . ";\n"; 
?> 
var ajax = ajaxObj("POST", "campaign.php?c="+campaign_id); 
ajax.onreadystatechange = function() { 
    if(ajaxReturn(ajax) == true) { 
     if(ajax.responseText == "Fail"){ 
      alert(ajax.responseText); 
     } 
    } 
} 
ajax.send("campaign_id="+campaign_id); 

注意:這些只是整個劇本的片段。整個腳本與腳本標記之間的標記和Java之間的PHP之間存在相同的PHP文件。

+0

你有一個''