PHP AJAX XMLHTTPRequest会话总是在我不销毁它的情况下被销毁

PHP AJAX XMLHTTPRequest会话总是在我不销毁它的情况下被销毁,php,jquery,ajax,xmlhttprequest,session-variables,Php,Jquery,Ajax,Xmlhttprequest,Session Variables,我能够确认我的会话变量将包含一个值,但下一次运行我的函数时,它会说:注意:未定义的变量:_sessionin C:\xampp\htdocs\Reports\u db\getvalue.php,第94行 我认为会话将保留其值,除非会话被销毁?为什么我没有得到我的课程的价值?有什么想法吗 这是PHP文件(UI) 选择一个字段: 品名 所以# 程序集名称 销售人员 客户名称 采购订单/备注 所以地位 交付状态 @ 过滤器 领域 价值 函数getvalue(str){ 如果(str=

我能够确认我的会话变量将包含一个值,但下一次运行我的函数时,它会说:注意:未定义的变量:_sessionin C:\xampp\htdocs\Reports\u db\getvalue.php,第94行

我认为会话将保留其值,除非会话被销毁?为什么我没有得到我的课程的价值?有什么想法吗

这是PHP文件(UI)



选择一个字段: 品名 所以# 程序集名称 销售人员 客户名称 采购订单/备注 所以地位 交付状态 @ 过滤器
领域 价值
函数getvalue(str){ 如果(str==“”){ document.getElementById(“输出”).innerHTML=“”; 返回; }否则{ if(window.XMLHttpRequest){ //IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }否则{ //IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ document.getElementById(“输出”).innerHTML=this.responseText; } }; open(“GET”,“_db/getvalue.php?q=“+str,true”); xmlhttp.send(); } } 函数搜索(str){ if(window.XMLHttpRequest){ //IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }否则{ //IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ document.getElementById(“输出”).innerHTML=this.responseText; } }; open(“GET”,“_db/getvalue.php?q=9”,true); xmlhttp.send(); } $(文档).ready(函数(){ $(“#搜索_btn”)。单击(函数(){ var x=$(“#搜索”).val(); 搜索(x); }); $(“#搜索”).keyup(函数(){ var x=$(“#搜索”).val(); 搜索(x); }); });
这是我使用会话的代码

<html>
<body>
    <table class="table">
<?php
    include('../includes/links/js.php');
    include('../includes/links/css.php');
    include('/connection/connect.php');
    if (isset($_GET['q'])){

        $val = $_GET['q'];
        if ($val < 9) {
            $field = '';
            $field_s = '';
            $group = '';

            if ($val == 1) {
                $field = "(SELECT pp1.name_template FROM product_product pp1 WHERE boml.product_id = pp1.id) as BOML";
                $field_s ="(SELECT pp1.name_template FROM product_product pp1 WHERE boml.product_id = pp1.id)";
                $group = "BOML";
            } elseif ($val == 2) {
                $field == "so.name";
                $group = "SO";
                $field_s = "so.name";
            } elseif ($val == 3) {
                $field = "sol.name as assembly";
                $group = "assembly";
                $field_s = "sol.name";
            } elseif ($val == 4) {
                $field = "split_part(u.login, '@', 1) as sales_person";
                $group = "sales_person";
                $field_s = "split_part(u.login, '@', 1)";
            } elseif ($val == 5) {
                $field = "c.display_name as Customer";
                $group = "Customer";
                $field_s = "c.display_name";
            } elseif ($val == 6) {
                $field = "so.note as PO";
                $group = "PO";
                $field_s = "so.note";
            } elseif ($val == 7) {
                $field = "so.state as Status";
                $group = "Status";
                $field_s = "so.state";
            } elseif ($val == 8) {
                $field = "COALESCE(del.state, 'Waiting Availability') del_status";
                $group = "del_status";
                $field_s = "COALESCE(del.state, 'Waiting Availability')";
            }
            $query = "      FROM sale_order so

                            INNER JOIN sale_order_line sol
                                ON so.id = sol.order_id
                            INNER JOIN res_partner as c
                                ON so.partner_id = c.id
                            LEFT JOIN account_payment_term as ap
                                ON so.payment_term_id = ap.id
                            INNER JOIN product_uom as pu
                                ON sol.product_uom = pu.id
                            LEFT JOIN account_tax_sale_order_line_rel as acs
                                ON sol.id = acs.sale_order_line_id
                            LEFT JOIN account_tax as at
                                ON acs.account_tax_id = at.id
                            INNER JOIN product_template as pt
                                ON sol.product_id = pt.id
                            LEFT JOIN mrp_bom as bom
                                ON pt.id = bom.product_tmpl_id
                            LEFT JOIN mrp_bom_line as boml
                                ON bom.id = boml.bom_id
                            INNER JOIN res_users as u
                                On so.create_uid = u.id

                            Left    Join (Select sp1.id, sp1.origin, sp1.state, spo1.qty_done, spo1.product_id, spo1.picking_id, sp1.date_done
                                            From stock_picking as sp1
                                            Full    Join stock_pack_operation as spo1
                                            On          sp1.id = spo1.picking_id) as del
                            On      so.name = del.origin
                            And     sol.product_id = del.product_id";

            if ($val != 2){
                $query = "
                            SELECT      Distinct ".$field." ".$query." Order By ".$group;
                            $_SESSION['being_used'] = "SELECT       Distinct ".$field." ".$query;
                            $_SESSION['field'] = $field;
                            echo 'set ok';
            } else {
                $query = "
                            SELECT      Distinct so.name ".$query." Order By so.name DESC";
                            echo 'set ok';
                            $_SESSION['being_used'] = "SELECT       Distinct so.name ".$query;
                            $_SESSION['field'] = $field;
                            echo 'set ok';
            }
        } else {
                echo $_SESSION['being_used'];
                echo $val;
                $search = $_GET['q'];
                $field_s = $_SESSION['field'];
                $query = $_SESSION['being_used']." Where".$field_s." Like '%".$search."%'";
        }
        $result = pg_query($query);
        while($row = pg_fetch_row($result)){
            echo "<tr>";
            echo "<td>" . $row[0] . "</td>";
            echo "</tr>";
        }
    }

?>
    </table>
</body>
</html>


你有
session_start()吗任何地方?如果它不在您包含的任何文件中,例如connect.php,那么您似乎缺少它。没有它就不行。好的做法是将其放在任何输出之前。您的搜索甚至没有传递字符串。将整个搜索更改为
$.get(“\u db/getvalue.php?q=“+escape(str),function(data){$(“#output”).html(data)})
Hi entiendoNull。我在connect.php中有它。好的,兄弟,我会接受你的建议,把它变成一个好的练习:D谢谢!你好,姆普隆詹。我能通过考试。看看我的getvalue()函数,它正在工作。但是我会照你说的去做,即使我不知道怎么做。谢谢大家!或者你可以教我怎么试为什么你要说“谢谢!”!OMG@EntiendNull我试图从我的connect.php中删除它,并试图将它放在会话声明的顶部,结果成功了!谢谢你,伙计!你真的救了我一天!这是一个用来帮助像我这样的哑巴的小甜饼,你有
session_start()吗任何地方?如果它不在您包含的任何文件中,例如connect.php,那么您似乎缺少它。没有它就不行。好的做法是将其放在任何输出之前。您的搜索甚至没有传递字符串。将整个搜索更改为
$.get(“\u db/getvalue.php?q=“+escape(str),function(data){$(“#output”).html(data)})
Hi entiendoNull。我在connect.php中有它。好的,兄弟,我会接受你的建议,把它变成一个好的练习:D谢谢!你好,姆普隆詹。我能通过考试。看看我的getvalue()函数,它正在工作。但是我会照你说的去做,即使我不知道怎么做。谢谢大家!或者你可以教我怎么试为什么你要说“谢谢!”!OMG@EntiendNull我试图从我的connect.php中删除它,并试图将它放在会话声明的顶部,结果成功了!谢谢你,伙计!你真的救了我一天!这是一块饼干,用来帮助像我这样的笨蛋XD
<html>
<body>
    <table class="table">
<?php
    include('../includes/links/js.php');
    include('../includes/links/css.php');
    include('/connection/connect.php');
    if (isset($_GET['q'])){

        $val = $_GET['q'];
        if ($val < 9) {
            $field = '';
            $field_s = '';
            $group = '';

            if ($val == 1) {
                $field = "(SELECT pp1.name_template FROM product_product pp1 WHERE boml.product_id = pp1.id) as BOML";
                $field_s ="(SELECT pp1.name_template FROM product_product pp1 WHERE boml.product_id = pp1.id)";
                $group = "BOML";
            } elseif ($val == 2) {
                $field == "so.name";
                $group = "SO";
                $field_s = "so.name";
            } elseif ($val == 3) {
                $field = "sol.name as assembly";
                $group = "assembly";
                $field_s = "sol.name";
            } elseif ($val == 4) {
                $field = "split_part(u.login, '@', 1) as sales_person";
                $group = "sales_person";
                $field_s = "split_part(u.login, '@', 1)";
            } elseif ($val == 5) {
                $field = "c.display_name as Customer";
                $group = "Customer";
                $field_s = "c.display_name";
            } elseif ($val == 6) {
                $field = "so.note as PO";
                $group = "PO";
                $field_s = "so.note";
            } elseif ($val == 7) {
                $field = "so.state as Status";
                $group = "Status";
                $field_s = "so.state";
            } elseif ($val == 8) {
                $field = "COALESCE(del.state, 'Waiting Availability') del_status";
                $group = "del_status";
                $field_s = "COALESCE(del.state, 'Waiting Availability')";
            }
            $query = "      FROM sale_order so

                            INNER JOIN sale_order_line sol
                                ON so.id = sol.order_id
                            INNER JOIN res_partner as c
                                ON so.partner_id = c.id
                            LEFT JOIN account_payment_term as ap
                                ON so.payment_term_id = ap.id
                            INNER JOIN product_uom as pu
                                ON sol.product_uom = pu.id
                            LEFT JOIN account_tax_sale_order_line_rel as acs
                                ON sol.id = acs.sale_order_line_id
                            LEFT JOIN account_tax as at
                                ON acs.account_tax_id = at.id
                            INNER JOIN product_template as pt
                                ON sol.product_id = pt.id
                            LEFT JOIN mrp_bom as bom
                                ON pt.id = bom.product_tmpl_id
                            LEFT JOIN mrp_bom_line as boml
                                ON bom.id = boml.bom_id
                            INNER JOIN res_users as u
                                On so.create_uid = u.id

                            Left    Join (Select sp1.id, sp1.origin, sp1.state, spo1.qty_done, spo1.product_id, spo1.picking_id, sp1.date_done
                                            From stock_picking as sp1
                                            Full    Join stock_pack_operation as spo1
                                            On          sp1.id = spo1.picking_id) as del
                            On      so.name = del.origin
                            And     sol.product_id = del.product_id";

            if ($val != 2){
                $query = "
                            SELECT      Distinct ".$field." ".$query." Order By ".$group;
                            $_SESSION['being_used'] = "SELECT       Distinct ".$field." ".$query;
                            $_SESSION['field'] = $field;
                            echo 'set ok';
            } else {
                $query = "
                            SELECT      Distinct so.name ".$query." Order By so.name DESC";
                            echo 'set ok';
                            $_SESSION['being_used'] = "SELECT       Distinct so.name ".$query;
                            $_SESSION['field'] = $field;
                            echo 'set ok';
            }
        } else {
                echo $_SESSION['being_used'];
                echo $val;
                $search = $_GET['q'];
                $field_s = $_SESSION['field'];
                $query = $_SESSION['being_used']." Where".$field_s." Like '%".$search."%'";
        }
        $result = pg_query($query);
        while($row = pg_fetch_row($result)){
            echo "<tr>";
            echo "<td>" . $row[0] . "</td>";
            echo "</tr>";
        }
    }

?>
    </table>
</body>
</html>