Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2008, 23:55
Новичок на форуме
Отправить личное сообщение для supercelt Посмотреть профиль Найти все сообщения от supercelt
 
Регистрация: 01.09.2008
Сообщений: 4

Динамическое клонирование поля и AJAX
Привет, помогите пожалуйста, такая вот проблема есть.

Код из страницы

<script type="text/javascript">
function duplicateHTML(copy,paste,baseid)
{
        if(document.getElementById(copy))
        {

            e107_dupCounter++;
            var type = document.getElementById(copy).nodeName; // get the tag name of the source copy.

            var but = document.createElement('input');
            var br = document.createElement('br');

            but.type = 'button';
            but.value = 'x';
            but.className = 'button';
            but.onclick = function(){ this.parentNode.parentNode.removeChild(this.parentNode); };

            var destination = document.getElementById(paste);
            var source      = document.getElementById(copy).cloneNode(true);

            var newentry = document.createElement(type);

            newentry.appendChild(source);
            newentry.value='';
            newentry.appendChild(but);
            newentry.appendChild(br);
            if(baseid)
            {
                newid = baseid+e107_dupCounter;
                newentry.innerHTML = newentry.innerHTML.replace(new RegExp(baseid, 'g'), newid);
                newentry.id=newid;
            }
            destination.appendChild(newentry);
        }
}

function doLoad(value) 
{
    var req = new JsHttpRequest();
    req.onreadystatechange = function() 
    {
        if (req.readyState == 4) 
        {
            getID('result_upload').innerHTML += req.responseJS.q;
            hideload_image();
        }
    }
    req.open('POST', 'upload_images.php', true);
    req.send({action:'upload_image', q:value});
    showload_image();
}
</script>

<div id='up_container'><span id='upline'>
<input type="file" name="upl[]" id="up">
</span>
<br />
</div>
<input type="button" class="admin_button" value="Добавить картинку" onClick="duplicateHTML('upline','up_container');" />&nbsp;&nbsp;&nbsp;<div id="ajax_button"><input type="button" class="admin_button" value="Загрузить" onClick="doLoad(this.form.upl)"></div>


Кнопка - добавить картинку, клонирует файловые поля. Я понял, что раз в имени поля стоит [], то имена полей в итоге будут выглядеть так: upl[0], upl[1], upl[2]. Собственно так и есть, то есть можно подсчитать кол-во пришедших полей через пхп так: count($_FILES).
Но вот задачто в том, что эта загрузка фоновая, через аякс. И вот как тут в ява скритпе сосчитать, кол-во отправляемых файлов (полей), и отправить это всё пхп скрипту в функции doLoad. req.send({action:'upload_image', q:value}); - это для переменной, а как туда все поля поместить.... проблема.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2008, 09:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Файлы с помощью XMLHttpRequest на сервер не загрузить.
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2008, 10:25
Новичок на форуме
Отправить личное сообщение для supercelt Посмотреть профиль Найти все сообщения от supercelt
 
Регистрация: 01.09.2008
Сообщений: 4

Да ладно))). Один-то файл грузится, мне просто надо в яваскрипте словить весь массив полей files и сосчитать их, прочитать имена полей и всё, остальное-то я знаю как. А JSHttpReques и XMLHttpRequest - это разные вещи?
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2008, 10:43
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от supercelt
Один-то файл грузится
А вы знаете, как он грузится?

Форму с файлами отправляйте в невидимый iframe, хоть писят файлов загрузится. JsHttpRequest тут не нужен, и так все просто. А умеет ли он работать с несколькими файлами, я не знаю.

Сообщение от supercelt
А JSHttpReques и XMLHttpRequest - это разные вещи?
JsHttpRequest надстройка над XmlHttpRequest (можно так сказать).
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2008, 10:50
Новичок на форуме
Отправить личное сообщение для supercelt Посмотреть профиль Найти все сообщения от supercelt
 
Регистрация: 01.09.2008
Сообщений: 4

Как он грузится я не разбирался. Я просто хотел узнать сам метод определения скриптом файловых полей, это даже пока к аяксу не относится. Если есть поля
<input type="file" name="upl[0]" />
<input type="file" name="upl[1]" />
<input type="file" name="upl[2]" />
<input type="file" name="upl[3]" />

Неужели в яваскипте нет метода, что бы определить что upl это массив и выделить его вот эти самые [], как это делается в пхп (count($_FILES['upl']))
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2008, 11:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от supercelt
Неужели в яваскипте нет метода, что бы определить что upl это массив
Нет, потому что upl -- это не массив. Это в PHP просто фича такая.
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2008, 11:27
Новичок на форуме
Отправить личное сообщение для supercelt Посмотреть профиль Найти все сообщения от supercelt
 
Регистрация: 01.09.2008
Сообщений: 4

ясно))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
AJAX и БД SunYang AJAX и COMET 3 06.06.2008 22:44
Ajax & Autorun Ergall-M AJAX и COMET 11 08.05.2008 15:33
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54