我有这段代码,现在我想把这个$ _SESSION ['roll_id']变量发送到另一个页面menu.php,其中写有ajax函数。我如何将此变量发送到设置数据的另一个ajax页面。
这是login.php页面。
if($row["Login_Id"]==$username and $row["Login_Pass"]==$password)
{
echo "<h2 align='center'>" ."Login Sucessfull welcome" ." " .$row["Login_Id"]
."</h2>" ;
$_SESSION['roll_id']=$row['Roll_Id'];
//echo "ID" .$_SESSION['roll_id']; (give roll id)
header("Location: menu.php");
}
else
{
echo "<h2 align='center'>" ."Login Failed" ."</h2>";
}
这是menu.php页面,其中编写了整个功能。我想从这个页面发送rollid到submenu.php,我可以在sql查询中使用这个roll id。
<?php
session_start();
$session = $_SESSION['roll_id'];
?>
<html>
<head>
<link href="menu_style.css" type="text/css" rel="stylesheet"/>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
var rollid = '<?php json_encode($session); ?>';
$.ajax
({
type:'post',
url:'submenu.php',
data:{"roll_id":rollid},
success:function(response)
{
//console.log(response);
var menuArray= JSON.parse(response);
var html ="";
$.each( menuArray, function( key, value )
{
html += "<li><a href=''>" + value.Menu_Name + "</a>";
if(value.subMenu.length > 0)
{
console.log(JSON.stringify(value.subMenu));
html += "<ul>";
$.each( value.subMenu, function( key, subValue )
{
html += "<li><a href=''>" + subValue.text + "</a></li>";
});
html += "</ul>";
}
html += "</li>";
});
console.log(html);
if(response!="")
{
$("#main_menu").html(html);
}
}
});
});
这是submenu.php页面
<?php
session_start();
include('config.php');
$roll_id = $_POST['roll_id'];
$q="select a.Roll_Id, a.Menu_Id, b.Menu_Name, b.Menu_URL,b.Menu_Level,
b.MainMenu_ID, b.Menu_Order, b.Account_id,b.is_deleted from roll_menu AS a
join menu AS b on a.Menu_Id=b.Menu_Id and a.Roll_Id=".$roll_id;
$menu = mysqli_query($conn, $q);
$mainMenu = array();
foreach($menu as $x=>$value)
{
if($value['MainMenu_ID']==0)
$mainMenu[]=$value;
}
$menuData= array();
foreach($mainMenu as $y=>$value1)
{
$subMenu= array();
$m=$mainMenu[$y]['Menu_Id'];
$q1="select a.Roll_Id, a.Menu_Id, b.Menu_Name, b.Menu_URL,
b.Menu_Level, b.MainMenu_ID, b.Menu_Order, b.Account_id,
b.is_deleted from roll_menu AS a join menu AS b on
a.Menu_Id=b.Menu_Id and a.Roll_Id=".$roll_id."and b.MainMenu_ID=$m";
$menu1 = mysqli_query($conn, $q1);
while($row=mysqli_fetch_array($menu1))
{
if($row["MainMenu_ID"]==$m)
{
$subMenu[]=array("text"=>$row["Menu_Name"]);
}
}
$value1["subMenu"] = $subMenu;
$menuData[] = $value1;
}
$menuDataJSON = json_encode($menuData);
echo $menuDataJSON;
现在我附上了submenu.php页面的完整代码。
答案 0 :(得分:0)
尝试这样可能对你有帮助
def print_file_dir(file)
logo = File.open(Dir.getwd + file, 'r');
logo.each_line do |line|
puts line
end
logo.close
puts
end
答案 1 :(得分:0)
第一次:您<?php
$img = imagecreatefrompng("imagetest.png");
$textcolor = imagecolorallocate($img,205,205,205);
$number = "Your IP is {$_SERVER[REMOTE_ADDR]}"; //Also note the interpolation here. Not neccesary but it is nicer
imagestring($img,10,5,5,$number,$textcolor);
header("Content-type: image/jpeg");
imagejpeg($img);
imagedestroy($img);
到missed
变量。
第二名:如果不是echo
则不需要array
第3名:在json_encode
功能之前,您不会header
任何echo
输出,如browser
或html
会导致echoing
所以要小心。
第4次:尝试在Warning: Cannot modify header information - headers already sent
函数
exit();
函数
header
Js:
header(....);
exit();
答案 2 :(得分:0)
您在成功登录时回显<h2 ...
,然后使用header
功能重定向。这将导致警告“警告:无法修改标头信息 - 已经发送的标头”和重定向可能不起作用。
对于AJAX,你需要像这样回显roll_id:
var rollid = '<?php echo json_encode($session); ?>';
我也想指出,因为rollid是单个值,所以你真的不需要json_encode它。
答案 3 :(得分:0)
只需var rollid = "<?php echo $_SESSION['roll_id']; ?>";
页首,然后尝试这样
.xlsx