Показать сообщение отдельно
  #7 (permalink)  
Старый 14.08.2013, 13:33
Новичок на форуме
Отправить личное сообщение для kuznecovo4ka Посмотреть профиль Найти все сообщения от kuznecovo4ka
 
Регистрация: 13.08.2013
Сообщений: 9

блин,что-то опять не работает с сессиями((
видимо вчера выводилось то, что уже было записано в $_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 "Запись не найдена";

}
?>
Ответить с цитированием