блин,что-то опять не работает с сессиями((
видимо вчера выводилось то, что уже было записано в $_SESSION до этого.
вот код страницы, на которой вызывается ajax-запрос и в которую нужно вывести переменную сессии:
<?
session_start();
class Client {
public $name;
public $tel;
public $skidka;
public $code;
public $kolvoObr;
public $sum;
}
?>
<script language="javascript" type="text/javascript">
var request = null;
function createRequest() {
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxm12.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = null;
}
}
}
if (request == null)
alert("Error creating request object!");
}
function hide() {
document.getElementById("resAuthCl").innerHTML = "";
}
function auth(f) {
createRequest();
var txt = f.elements["searchWord"].value;
if (txt == "") {document.getElementById("resAuthCl").innerHTML = "Задан пустой запрос"; }
else {
var elemsRadio = f.elements["authValue"];
var i, elem;
for (i=0; i<elemsRadio.length; ++i) {
if (elemsRadio[i].checked == true) {
elem = elemsRadio[i];
break; }
}
var data = "txt="+txt+"&type="+elem.value;
var url = "other/forAuthClient.php?"+data;
request.open("GET", url, true);
request.onreadystatechange = upd;
request.send(null);
}
}
function upd() {
if (request.readyState == 4) {
var result = request.responseText;
if (result == "Запись найдена") {
document.getElementById("resAuthCl").innerHTML = "Имя клиента: "+"<? echo $_SESSION['client']->name.'<br />'; ?>"+"Телефон: "+"<? echo $_SESSION['client']->tel.'<br />'; ?>"+"<input id='postAndHide' type='button' value='Да, всё верно' onclick='hide();'/>";
}
else {
document.getElementById("resAuthCl").innerHTML = "Запись не найдена";
}
}
}
</script>
<body>
<div id="top"></div>
<form name="form1">
<input onkeydown="if (event.keyCode == 13) {auth(this.form); return false;}" id="searchWord" type="text" autofocus="autofocus" />
<input name="authValue" type="radio" value="tel" />по номеру
<input name="authValue" type="radio" value="code" checked />по Карте клиента
<input id="poisk" type="button" value="Найти" onclick="auth(this.form);"/>
</form>
<div id="resAuthCl"></div>
<? session_write_close(); ?>
</body>
а вот код обработки ajax-запроса:
<?
session_start();
header("Content-Type: text/html; charset=WINDOWS-1251");
class Client {
public $name;
public $tel;
public $skidka;
public $code;
public $kolvoObr;
public $sum;
}
function clientAuth($text, $pole){
include('../block/db.php');
$res = mysql_query("select * from clients where $pole='$text'", $db);
$numrows = mysql_num_rows($res);
if ($numrows>'0') {
$myrow = mysql_fetch_array($res);
$_SESSION['client'] = new Client();
$_SESSION['client']->name = $myrow['name'];
$_SESSION['client']->tel = $myrow['tel'];
$_SESSION['client']->skidka = $myrow['skidka'];
$_SESSION['client']->code = $myrow['code'];
$_SESSION['client']->kolvoObr = $myrow['kolvo_obr'];
$_SESSION['client']->sum = $myrow['sum'];
session_write_close();
return true;
}
else {
return false;
}
return;
}
if (isset($_GET['txt']) and isset($_GET['type'])) {
$text = $_GET['txt'];
$pole = $_GET['type'];
$fl = clientAuth($text, $pole);
if($fl) {
echo "Запись найдена";
}
else echo "Запись не найдена";
}
?>