11.07.2015, 11:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
sash003,
Сообщение от рони
|
return _A_(kids) ;// подумай что делать если массив пустой
|
return kids.length ? _A_(kids) : false
и так везде
function _init_(el){ if (!el) return
|
|
11.07.2015, 22:02
|
|
Аспирант
|
|
Регистрация: 23.10.2014
Сообщений: 72
|
|
Знаешь, оно просто ничего не делает когда не находит, возвращает предыдущий просто. боюся лезть чтото менять, хотя раз ты говоришь, сделаю
|
|
11.07.2015, 22:29
|
|
Аспирант
|
|
Регистрация: 23.10.2014
Сообщений: 72
|
|
рони,
Зацени
/* пишем аякс-функцию */
function ajax(obj){
try{var xhr = new XMLHttpRequest()
} catch(e1){try{
xhr = new ActiveXObject("Msxml2.XMLHTTP")
} catch(e2){try{
xhr = new ActiveXObject("Microsoft.XMLHTTP")
} catch(e3){ xhr = false
}
}
}
obj.type = obj.type || "GET" ;
if(obj.type === 'POST'){
var params = '';
for(i in obj.data){
params += i + '=' + obj.data[i] + '&';
}
params = params.slice(0, -1);
xhr.open("POST", obj.url, true);
xhr.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
//xhr.setRequestHeader("Content-length", params.length);
//xhr.setRequestHeader("Connection", "close");
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200){
obj.success(this['response' + obj.dataType]);
}
else console.log( "Ajax error: " + this.statusText);
}
xhr.send(params);
}
else if(obj.type === "GET"){
var params = '?';
for(i in obj.data){
params += i + '=' + obj.data[i] + '&'
}
params = params.slice(0, -1);
params += "&nocache=" + Math.random() * 1000000
//console.log(params);
xhr.open("GET", obj.url + params, true);
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200){
obj.success(this['response' + obj.dataType]);
}
else console.log( "Ajax error: " + this.statusText)
}
xhr.send(null);
}
}
ajax({
url : './test_ajax.php',
type: 'POST',
dataType: 'Text',
data: {name: 'sash', _data_ : 'true'},
success: function(response){
document.getElementById('response').innerHTML =
response;
}
});
|
|
11.07.2015, 22:45
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
Сообщение от sash003
|
Зацени
|
сойдет
|
|
11.07.2015, 22:55
|
|
Аспирант
|
|
Регистрация: 23.10.2014
Сообщений: 72
|
|
KosBeg, сенк ю
Теперь надо придумать как сделать чтобы можно было делать загрузку файлов как у Дениса на сайте http://incode.pro/jquery/ajax-na-pra...ka-fajlov.html
contentType: false, // важно - убираем форматирование данных по умолчанию
processData: false, // важно - убираем преобразование строк по умолчанию
Сделать проверку на тип данных (обьехт, строка) и ещё подскаж что забыл
|
|
12.07.2015, 19:12
|
|
Аспирант
|
|
Регистрация: 23.10.2014
Сообщений: 72
|
|
Полный вариант, не супер но сойдёт
function ajax(obj){
try{var xhr = new XMLHttpRequest()
} catch(e1){try{
var xhr = new ActiveXObject("Msxml2.XMLHTTP")
} catch(e2){try{
var xhr = new ActiveXObject("Microsoft.XMLHTTP")
} catch(e3){var xhr = false
}
}
}
obj.type = obj.type || "GET" ;
if(obj.type === 'POST'){
xhr.open("POST", obj.url, true);
var params = '';
if (typeof obj.data === 'string')
params = obj.data;
else if(typeof obj.data === 'object'){
if(obj.contentType === false){
params = obj.data;
console.log(params);
}
else{
for(var i in obj.data){
params += i + '=' + obj.data[i] + '&';
}
params = params.slice(0, -1);
console.log(params)
xhr.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
}
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); }
xhr.onreadystatechange = function() {
if(xhr.readyState == 4 && xhr.status == 200){
obj.success(this['response' + obj.dataType]);
}
else console.log( "Ajax error: " + this.statusText);
}
xhr.send(params);
}
else if(obj.type === "GET"){
var params = '?';
if (typeof obj.data === 'string')
params += obj.data;
else if(typeof obj.data === 'object'){
for(var i in obj.data){
params += i + '=' + encodeURIComponent(obj.data[i]) + '&'
}
params = params.slice(0, -1);
params += "&nocache=" + Math.random() * 1000000;
}
xhr.open("GET", obj.url + params, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.onreadystatechange = function() {
if(this.readyState == 4 && this.status == 200){
obj.success(this['response' + obj.dataType]);
}
else console.log( "Ajax error: " + this.statusText)
}
xhr.send(null);
}
}
document.forms.f1.onsubmit = function(e){
e.preventDefault();
var formObj = {};
var elem = document.forms.f1;
var inputs = elem.querySelectorAll('[name]');
for(var i = 0; i < inputs.length; i++){
formObj[inputs[i].name] = inputs[i].value;
if(window.FormData) {
var formData = new FormData(document.forms.f1);
}
}
// попытка отправки
ajax({
url : './test_ajax.php',
type: 'POST',
dataType: 'Text',
contentType : false,
data:formData,//{text: document.querySelector('[name=text]').value, _data_ : 'true'},
success: function(response){
document.getElementById('response').innerHTML =
response;
}
});
}
|
|
12.07.2015, 19:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Если есть свой ресурс с доступом к PHP, нарисовать простенький проксер GET запросов и дополнить либу кроссдоменным GET - Аяксом, часто востребовано. К примеру поиск картинок в гугле, или чтение RSS с ресурсов
|
|
12.07.2015, 19:45
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
Сообщение от Deff
|
Если есть свой ресурс с доступом к PHP
|
как вариант - бесплатный хостинг от beget.ru ,
как на бесплатный хостинг - очень даже неплохо,
или например это - http://aws.amazon.com/ru/free/
Сообщение от Deff
|
нарисовать простенький проксер GET запросов
|
а как сделать? при помощи cURL?
Сообщение от Deff
|
часто востребовано
|
часто, не часто - но нужно
|
|
13.07.2015, 01:33
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
KosBeg,
Я давно с PHP не баловался, помню только фичу, что нун трансформировать(через PHP) полученный прокси-запросом код страницы(Если он HTML) в UTF-8, если исходный в windows-1251, остальное вроде как в пяток строк.
Начни с гугла, типо: - простое проксирование GET-запросов на PHP
Последний раз редактировалось Deff, 13.07.2015 в 01:43.
|
|
|
|