我想将一些$ _SESSION变量从moduleinfo.php传递给managemodule.php。但是,我尝试传递的每个变量都没有传递给managemodule.php。
managemodule.php:
//Assume that database connect here
<form id="moduleform">
<h2 class="fs-title">Module Info Update</h2>
<p>Please select a module for more information:</p><br />
<select id="modulelist" name="module" onchange="showModuleInfo(this.value)">
<option>-- Select a module --</option>
<?php include('modulelist.php'); ?>
</select>
<div id="moduleinfo"><br /><b><-- Module info will be listed here --></b></div>
<?php
echo $_SESSION['code']; //Just wanted to see if the value get passed
?>
</form>
managemodule.js:
function showModuleInfo(str)
{
if (str == "")
{
document.getElementById("moduleinfo").innerHTML = "";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("moduleinfo").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","moduleinfo.php?q="+str,true);
xmlhttp.send();
}
moduleinfo.php:
//Assume that database connect here
session_start();
$q = $_GET['q'];
$result = mysql_query("SELECT * FROM module WHERE code = '".$q."'");
while($row = mysql_fetch_array($result))
{
echo '<input type="text" name="update_moduleCode" placeholder="Module Code" value="'.$row['code'].'" required />';
echo '<input type="text" name="update_moduleTitle" placeholder="Module Name" value="'.$row['name'].'" required />';
echo '<textarea name="update_moduleDescription" rows="14" placeholder="Module Description" required>'.$row['description'].'</textarea><br />';
echo '<input type="submit" name="update" class="next action-button" value="Update" />';
echo 'OR ';
echo '<button name="delete" class="next action-button" value="Delete Module" onclick="deleteAlert()">'.'Delete Module'.'</button>';
$_SESSION['code'] = $row['code']; //Trying to pass this value over to managemodule.php
}
谁能告诉我如何实现这一目标?另外,只是好奇,为什么我需要在moduleinfo.php中再次连接我的数据库,因为我已经在我的主文件managemodule.php中完成了这个?
答案 0 :(得分:1)
您需要使用与{module} .php中相同的session_start();
在managemodule.php中启动会话。当您在该文件中启动会话时,您在$_SESSION
中保存的所有变量都将在那里可用。
如果您尚未包含已连接到数据库的文件。当我必须在多个PHP文件中使用数据库时,我通常会创建一个init.php
文件,我将所有包含的文件放入其中。
例如: 的init.php
// include DB files
require_once('path/to/database.php');
$db = new Database();
// include user manager
require_once('/path/to/user.php');
$user = new UserManager();
// start session
session_start();
main.php
require_once('init.php');
// all of my code goes below here =)
_D