Доброе утро всем! Сразу опишу свою проблему. Использую библиотеку для загрузки файлов на сервер без перезагрузки страницы. Проблема в том, что я не знаю как с ее помощью вывести результат загрузки без перезагрузки страницы. Чтобы по нужному id юзера выбрались данные из базы и отобразились на странице, а при загрузке нового файла, появлялся loader.jpeg и затем снова выводился уже обновленный результат. Изначально приведу пример, как автоматически получить любые строковые данные при помощи библиотеки JsHttpRequest. Сразу оговорюсь я привожу пример серверного кода, на основе которого я написал свой upl_backend.php, который загружает данные в базу данных, отправляет файл на сервер, далает выборкуданных из базы, но вот не знаю как передать выбранный массив данных клиентской части ассинхронно. Кто не знаком с данной библиотекой может посмотреть наглядный пример ее работы здесь
http://www.dklab.ru/lib/JsHttpReques...5_frontend.htm
Файл uplFrontend.htm
<script src=MJsHttpRequest/JsHttpRequest. js"x/script>
<script language="JavaScript">
function calculateMd5(element) {
// Сразу же обращаемся к методу query() библиотеки.
JsHttpRequest.query(
// Адрес серверного сценария.
1upl_backend.php',
// Так передаются параметры серверу
{
'file': element
Ь
// Функция вызывается, когда сервер подготовил данные,
function(result, errors) {
// Записать результаты в элементы <div>.
document.getElementByld("debug").innerHTML = errors;
document.getElementByld("result").innerHTML =
'MD5C + result, name +')='+ result. md5;
}
);
}
</script>
<!— Мы обязательно должны использовать атрибут multipart/form-data! —>
<form method="post" enctype="multipart/form-data">
Просто выберите файл. Тут же будет подсчитан его MD5.<br>
<input type="file" name="upl" onchange="calculateMd5(this)">
</form>
<div id="result" style="border:lpx solid #000; padding:2px">
Result
</div>
<div id="debug" style="border:lpx dashed red; padding:2px">
Debug info
</div>
серверная часть (файл upl_backend.php )
// Загрузить библиотеку JsHttpRequest.
require_once "JsHttpRequest/JsHttpRequest.php";
// Инициализация. Обязательно указывайте кодировку сценария!
$JsHttpRequest =& new JsHttpRequest("windows-1251");
// Сохранить результат.
$fileName = $_FILES['file']['name'] ;
$tmpName = $_FILES [' file' ] [' tmp_name' ] ;
$_RESULT = array(
"name" => $fileName,
"md5" => md5 (@file_get_contents ($tmpName) ),
);
Теперь лично к моему серверному коду, который делает все выше перечисленное . Целиком приводить не буду потому что он большой и можно запутаться в нем. Приведу ту часть которая выбирает данные из базы и формирует их в массив.
public function load($path = "/pages/create/file-upload") {
$array = array();
$sql = "select `id`, `directory`, `name` from `files` where `user_id` = '" . $this -> key . "' order by `time` asc;";
$query = mysql_query($sql, $this -> db);
while ($data = mysql_fetch_array($query)) {
$array[] = array("id" => $data["id"], "thumb" =>$path . "/" . UPLOADS_DIR . "/" . $data["directory"] . "/" . $data["name"]);
}
$this -> json($array);
}
Все данные выбраны, теперь нужно передать их нашей клиентской части. Как это сделать? А то я AJAX только начал изучать.
Если кто-то готов выполнить работу за оплату, то прошу модераторов перенести тему в нужный раздел. Всем спасибо.