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