|
|
| |
|
|
| |
для: SlaDER
(04.06.2007 в 12:41)
| | | да незачтётся за флуд, но кто может порекомендовать хорошую литературу по AJAX?
очень охото изучить его... но не натыкался на хорошую литературу по нему :( | |
| |
|
|
| |
|
|
| | Есть вот такой код:
<script language="JavaScript">
var request;
function doLoad(url) {
if (window.XMLHttpRequest) {
alert;
request = new XMLHttpRequest();
request.onreadystatechange = processRequestChange;
request.open("GET", url, true);
request.send(null);
} else if (window.ActiveXObject) {
request = new ActiveXObject("Microsoft.XMLHTTP");
if (request) {
request.onreadystatechange = processRequestChange;
request.open("GET", url, true);
request.send();
}
}
}
function getRequestStateText(code) {
switch (code) {
case 0: return "Uninitialized."; break;
case 1: return "Loading..."; break;
case 2: return "Loaded."; break;
case 3: return "Interactive..."; break;
case 4: return "Complete."; break;
}
}
function processRequestChange() {
document.getElementById("resultdiv").style.display = 'none';
abortRequest = window.setTimeout("request.abort();", 10000);
if (request.readyState == 4) {
clearTimeout(abortRequest);
if (request.status == 200) {
document.getElementById("resultdiv").style.display = 'block';
document.getElementById("responseHTML").innerHTML = request.responseText;
} else {
alert("Не удалось получить данные:n" + request.statusText);
}
document.getElementById("loading").style.display = 'none';
}
else if (request.readyState == 3 || request.readyState == 1) {
document.getElementById("loading").style.display = 'block';
}
}
</script>
|
//Слои для вывода
<div id="resultdiv"></div>
<div id="responseHTML"></div>
|
<select name='org' id='search' onchange=\"doLoad('ajaxsearch.php?search='+document.getElementById('search').value);\" class='tbox'><option value=0 selected></option>"
</select>
|
И php обработчик:
<?php
require_once("mysql_class.php");
//Чтобы PHP-скрипт корректно работал с
XMLHttpRequest, он (скрипт) должен посылать
ряд заголовков. А именно: тип содержимого и
его кодировку (особенно важно, если вы
работаете с кириллицей), а также параметры
кеширования — любое кеширование должно быть
отключено (ну это и понятно - необходимо
иметь свежую информацию).
header("Content-type: text/html; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
$sql= new db;
$sql->db_Connect($mySQLserver, $mySQLuser, $mySQLpassword, $mySQLdefaultdb);
// Передаём параметры в метод db_Connect класса db
$search=$_GET['search'];
$sql->db_Select("directory_departament","*","int_organization = '$search'");
print "<div class='white b'>Отдел</div>";
print "<select name='dep' class='tbox'><option value=0></option>";
while($row=$sql->db_Fetch()){
print "<option value=$row[0]>".$row[2]."</option>";
}
print "</select>"
?>
|
Дак вот мне нужно, чтобы второй select выводился на странице (другой), а в PHP обработчик просто туда добавлял строчки. | |
| |
|
|
|