Javascript 如何将数据从php页面发送到ajax页面

Javascript 如何将数据从php页面发送到ajax页面,javascript,php,sql,ajax,Javascript,Php,Sql,Ajax,我有这段代码,现在我想把这个$\u SESSION['roll\u id']变量发送到另一个page menu.php,在那里编写ajax函数。如何将此变量发送到另一个ajax页面以获取集合数据 这是login.php页面 if($row["Login_Id"]==$username and $row["Login_Pass"]==$password) { echo "<h2 align='center'>" ."Login Sucessfull welcome" ." " .$ro

我有这段代码,现在我想把这个$\u SESSION['roll\u id']变量发送到另一个page 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>";
}
if($row[“Login\u Id”]==$username和$row[“Login\u Pass”]=$password)
{
echo“.”“登录成功欢迎”。“$row[“登录Id”]
."" ;
$\会话['roll\u id']=$行['roll\u id'];
//回显“ID”。$\u会话['roll\u ID'];(给出roll ID)
标题(“位置:menu.php”);
}
其他的
{
echo“”“登录失败”。”;
}
这是menu.php页面,其中编写了整个功能。我想将rollid从这个页面发送到submenu.php,在那里我可以在sql查询中使用这个rollid

<?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);
        }
    }
});

$(文档).ready(函数(){
var rollid='';
$.ajax
({
类型:'post',
url:'submenu.php',
数据:{“roll_id”:rollid},
成功:功能(响应)
{
//控制台日志(响应);
var menuArray=JSON.parse(响应);
var html=“”;
$.each(菜单数组、函数(键、值)
{
html+=“
  • ”; 如果(value.subMenu.length>0) { log(JSON.stringify(value.subMenu)); html+=“
      ”; $.each(value.subMenu,function)(键,子值) { html+=“
    • ”; }); html+=“
    ”; } html+=“
  • ”; }); log(html); 如果(响应!=“”) { $(“#主菜单”).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;
    

    这样试试可能会对你有帮助

    <?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 echo $session; ?>"; //change here
    alert(rollid)
    $.ajax
    ({
        type:'post',
        url:'submenu.php',
        data:{roll_id:rollid}, // change alse here
        /*success: function (data) {
                alert(data); 
            }*/
    
    
    $(文档).ready(函数(){
    var rollid=“;//在此处更改
    警报(rollid)
    $.ajax
    ({
    类型:'post',
    url:'submenu.php',
    数据:{roll\u id:rollid},//在此处更改alse
    /*成功:功能(数据){
    警报(数据);
    }*/
    
    1st:您错过了
    echo
    变量

    2nd:如果它不是
    数组
    无需
    json\u编码

    3rd:
    标题
    功能之前,您将不会
    回送
    任何
    浏览器
    html
    回送
    那样发出内容将导致
    警告:无法修改标题信息-标题已发送
    ,请注意

    4th:尝试将
    exit();
    函数放在
    标题之后

      header(....);
      exit();
    
    Js:

    var rollid = '<?php echo $session; ?>';
    
    var-rollid='';
    
    您回显了页面顶部的
    启动会话()

    var rollid = "<?php echo $_SESSION['roll_id']; ?>";
    
    var rollid=”“;
    
    上述代码中出现了什么错误?以及“menu.php”页面中会话变量的内容是什么?VM374:2未捕获语法错误:意外标记<在JSON中位于JSON.parse()在Object.success(menu.php:20)在i(jquery.min.js:2)在Object.fireWith[as resolveWith](jquery.min.js:2)在(jquery.min.js:4)在XMLHttpRequest上。(jquery.min.js:4)您可以通过
    子菜单.php
    直接变量调用会话。为什么要通过ajax?您可以直接在rollid变量中分配$session变量您错过了
    echo
    var rollid='';
    所以只需打印($\u session);首先,检查login.php文件中sessionalso中是否有任何值存储在filesession_start()顶部的sessional_start()登录页面中也有。menu.php:8未捕获的语法错误:无效或意外标记
    错误
    您的
    会话变量
    似乎是
    空的
    @AnjanaChoudharyno当我打印时,存储的值是会话变量。它不是空的。请确保会话变量不是空的,因此需要检查存储的值在roll_id变量中,请尝试警告roll_id变量。我已更新了我的回答如何检查数据roll id变量上存储了什么值。您是否向该语句添加了echo,如
    var rollid='';
    ?还有,什么对您不起作用?该值在submenu.php上不可用?您可以使用
    $session=$\u会话['roll\u id'];
    在submenu.php中获取它的值。var rollid='';这是由我完成的。当我打印r($session)时,它也给出了正确的值。但是我认为这个值不会出现在数据“rollid”中。好的,我想我得到了。在submenu.php上,将
    $roll\u id=$\u POST['rollid'];
    更改为
    $roll\u id=$\u POST['roll\u id']
    因为您发送的是
    roll\u id
    变量,而不是
    rollid
    ,所以此操作已完成。我已更正了此错误,但仍有一些错误。
    var rollid = "<?php echo $_SESSION['roll_id']; ?>";