$.each(sel,function(){
var fd = new FormData();
fd.append('elementID', data.elementID);
fd.append('type',$(this).data('file'));
var file = $(this)[0].files[0];
if($(this).hasAttr('multiple')){
var input = document.querySelector('[data-file="'+$(this).data('file')+'"]').files;
for (var i = 0; i < input.length; i++){
var fd = new FormData();
fd.append('elementID', data.elementID);
fd.append('type',$(this).data('file'));
fd.append('file',input);
obFD.push(fd);
}
}else{
fd.append('file', file);
obFD.push(fd);
}
});
var i = 0;
var t = setInterval(function(){
if(!$.element.stateUpload){
sendFile(obFD);
i++;
}
if(i==obFD.length){
clearInterval(t);
$.wnd.close(true);
$.sysMsg.showOk(data.msg);
return;
}
},1000);
p.s.
Удалось запустить так:
var http = require('http');
var url = require('url');
var server = new http.Server(function(req,res){
var uparse = url.parse(req.url,true);
res.end(uparse.query.msg);
console.log(req.method,req.url);
});
server.listen(1337, '127.0.0.1');
Я так понимаю res.end() убивает сервер, или как?
И все же объясните мне, как вообще это работает?
---------- Добавлено 23.01.2015 в 06:41 ----------
немного изменил чтобы понять
var http = require('http');
var url = require('url');
var arr = [];
var server = new http.Server(function(req,res){
var uparse = url.parse(req.url,true);
arr.push(uparse.query.msg);
res.writeHead(200,{"Content-Type": "text/html"});
var str = '';
for(i=0;i<arr.length;i++){
if(typeof(arr)==='undefined'){
continue;
}
str += '<p>'+arr+'</p>';
}
res.end(str);
});
server.listen(1337, '127.0.0.1');
оказывается что массив всегда хранит все для всех клиентов? тут нет такого чтото вроде сессий в PHP?
добавил nowrap и ширину 1% к td в css, и сделал так
var cols = $('.table-list tr').first().find('th').length;
console.log('Колво столбцов: '+cols);
$('.table-list tr td:last-child,.table-list th td:last-child').width('auto');
Вроде как надо работает!
siv1987, а то что я написал с интервалом, очень плохо?
siv1987, но при этом должна продолжать жить страница, иначе какой смысл делать ajax запрос?
siv1987, в таком случает висит страница, особенно если файлы большие
вот я набодяжил решение, главное работает)
if(sel.length>0){
console.log('Saved files, total fields: '+sel.length);
function sendFile(fd){
$.element.stateUpload = true;
$.ajax({
type: 'POST',
url: HOST+'element/uploadFile',
data: fd,
processData: false,
contentType: false,
success: function(data) {
$.element.stateUpload = false;
console.log(data);
},
error: function(data) {
$.element.stateUpload = false;
console.log(data);
}
});
}
var obFD = [];
$.each(sel,function(){
var fd = new FormData();
fd.append('elementID', data.elementID);
fd.append('type',$(this).data('file'));
var file = $(this)[0].files[0];
if($(this).hasAttr('multiple')){
var input = document.querySelector('[data-file="'+$(this).data('file')+'"]').files;
for (var i = 0; i < input.length; i++){
var fd = new FormData();
fd.append('elementID', data.elementID);
fd.append('type',$(this).data('file'));
fd.append('file',input);
obFD.push(fd);
}
}else{
fd.append('file', file);
obFD.push(fd);
}
});
var i = 0;
var t = setInterval(function(){
if(!$.element.stateUpload){
sendFile(obFD);
i++;
}
if(i==obFD.length){
clearInterval(t);
$.wnd.close(true);
$.sysMsg.showOk(data.msg);
return;
}
},1000);
return;
}
lutskboy, нет, не подойдет. Я думаю надо правильно интервал написать и все ок будет
работает, но тут приклеиваются лишние символы в начало
---------- Добавлено 09.01.2015 в 00:39 ----------
тут конечно можно сделать str_replace в $val символов "t;" и "=", но всеже как в регулярке это сделать?
А вот если так регулярку запилить:
/:([\w_]+)\s*([^<>=]{1,2})\s*(["\'].*?["\']|[^\s()]+)/то вывод такой (тот же пример)
siv1987, так ничего не изменилось:
preg_match_all('/:([\w_]+)\s*([\x3C\x3E=]{1,2})\s*(["\'].*?["\']|[^\s()]+)/', $str, $out);