sdemirkeser, saol fakat müşteri böyle istiyor ajaxda ağac şeklinde listeleme, bu script bunu yapiyor fakat listelerken kafasına göre alfabe düzeni yok, müşteri alfabe düzenine göre istiyor, localde (windowsda) harfe göre sıralıyor, fakat sunucuda kafasına göre listeleme yapiyor, sunucu ayarlarını oynama şansım yok, mecbur koddan bulmam gerekiyor.
üsteki borwse.classs.php di
bu browse.php
Alıntı
<?php
// load error handling script, config and browse class
require_once ('error_handler.php');
require_once ('browse.class.php');
require_once ('config.php');
// Create new browse object
$browser = new Browse();
$browser->invalid_files = $invalid_files;
//generate response
$response =
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' .
'<response>' .
'<result>' .
$browser->BrowseAJAX($_POST['inputValue'], $_POST['fieldID']) .
'</result>' .
'<fieldid>' .
$_POST['fieldID'] .
'</fieldid>' .
'</response>';
// generate the response
if(ob_get_length()) ob_clean();
header('Content-Type: text/xml');
echo $response;
?>
buda index.php de olan dosya
Alıntı
<div class="left">
<body onload="browse('open','<?=$path?>');">
<div id="busy" align="center"><h1>Eger Goremiyorsanız Tıklayınız</h1></div>
<p align="left"><b>
<span id="<?=$path?>" title="open" onclick="browse(this.title,this.id);"/><h2><?=$path?></h2></span>
</b></p>
<p align="left">
<span id="<?=$path?>Info"></span>
</div>
config dosyasi
Alıntı
<?php
$path = './';
$invalid_files = array ("\\/", "php", "css", "htaccess", "sub", "srt", "idx", "smi", "jpg", "js");
?>
browser.js
Alıntı
var xmlHttp = createXmlHttpRequestObject();
var serverAddress = "browse.php";
var showErrors = true;
var cache = new Array();
//XMLHttpRequest instance
function createXmlHttpRequestObject() {
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
}
catch(e) {
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
// try every id until one works
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
try {
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e) {}
}
}
if (!xmlHttp)
displayError("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
// error message
function displayError($message) {
if (showErrors) {
showErrors = false;
alert("Error encountered: \n" + $message);
setTimeout("browse();", 10000);
}
}
// the function handles the validation for any form field
function browse(inputValue, fieldID) {
if (xmlHttp) {
if (fieldID) {
if (inputValue == "close") {
document.getElementById(fieldID).title = "open";
document.getElementById(fieldID + "Info").innerHTML = "";
//alert("image" + fieldID);
if (document.getElementById("image" + fieldID))
document.getElementById("image" + fieldID).src = "../img/folder.gif";
return;
}
else {
document.getElementById(fieldID).title = "close";
if (document.getElementById("image" + fieldID))
document.getElementById("image" + fieldID).src = "../img/back.gif";
}
inputValue = encodeURIComponent(inputValue);
fieldID = encodeURIComponent(fieldID);
cache.push("inputValue=" + inputValue + "&fieldID=" + fieldID);
}
// try to connect to the server
try {
if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
&& cache.length > 0) {
// get a new set of parameters from the cache
var cacheEntry = cache.shift();
// make a server request to validate the extracted data
xmlHttp.open("POST", serverAddress, true);
xmlHttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(cacheEntry);
}
if (xmlHttp.readyState == 1)
document.getElementById("busy").innerHTML = "<h1>Sunucu Yogun</h1>";
else
document.getElementById("busy").innerHTML = "<h1>3D Download</h1>";
}
catch (e) {
displayError(e.toString());
}
}
}
// function that handles the HTTP response
function handleRequestStateChange() {
// when readyState is 4, we read the server response
if (xmlHttp.readyState == 4) {
// continue only if HTTP status is "OK"
if (xmlHttp.status == 200) {
try {
readResponse();
}
catch(e) {
displayError(e.toString());
}
}
else {
displayError(xmlHttp.statusText);
}
}
}
function replaceAll( str, from, to ) {
var idx = str.indexOf( from );
while ( idx > -1 ) {
str = str.replace( from, to );
idx = str.indexOf( from );
}
return str;
}
// read server's response
function readResponse() {
// retrieve the server's response
var response = xmlHttp.responseText;
amp = new RegExp("&", "g");
// server error?
if (response.indexOf("ERRNO") >= 0
|| response.indexOf("error:") >= 0
|| response.length == 0)
throw(response.length == 0 ? "Server error." : response);
// get response in XML format (assume the response is valid XML)
responseXml = xmlHttp.responseXML;
// get the document element
xmlDoc = responseXml.documentElement;
result = xmlDoc.getElementsByTagName("result")[0].firstChild.data;
fieldID = xmlDoc.getElementsByTagName("fieldid")[0].firstChild.data;
// find the HTML element that displays the error
result = result.replace("amp", "&");
message = document.getElementById(fieldID + "Info");
message.innerHTML = result;
// show the error or hide the error
//message.className = (result == "0") ? "error" : "hidden";
// call validate() again, in case there are values left in the cache
setTimeout("browse();", 500);
}
error_handler.php
Alıntı
<?php
// set the user error handler method to be error_handler
set_error_handler('error_handler', E_ALL);
// error handler function
function error_handler($errNo, $errStr, $errFile, $errLine) {
// clear any output that has already been generated
if(ob_get_length()) ob_clean();
// output the error message
$error_message = 'ERRNO: ' . $errNo . chr(10) .
'TEXT: ' . $errStr . chr(10) .
'LOCATION: ' . $errFile .
', line ' . $errLine;
echo $error_message;
// prevent processing any more PHP scripts
exit;
}
?>
bunun haricinde başka birşey yok,