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文件。
你有一个''