{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1. [автор] (28 июл 2014, 10:50) [0/0] [0] [отв] [спам] [под] +1 | -1

Всем привет, написал небольшую функцию для работы с ajax-ом, мб есть какие-либо недочеты, ошибочки?

[code]
function ajax(agrs) {
if (args.id) var element = document.getElementById(args.id);
// check XMLHttpRequest supported
if (window.XMLHttpRequest) {
// make new object
var XMLHttpRequest = new XMLHttpRequest();
// request handler
XMLHttpRequest.onreadystatechange = function () {

// request state
if (XMLHttpRequest.readyState == 4) {

if (XMLHttpRequest.status == 404) {
// if is id
if (args.id) element.innerHTML = 'Ошибка.';
return false;
}
else
if (XMLHttpRequest.status == 200) {

// if is id
if (args.id) element.innerHTML = XMLHttpRequest.responseText;
return true;
}
}
}
// if POST method
if (args.method == 'POST') {
XMLHttpRequest.open(args.method, args.url, true);
XMLHttpRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded"*;
//
XMLHttpRequest.send(args.vars);
}
// if GET method
else {
XMLHttpRequest.open(args.method, args.url + '?' + args.vars, true);
//
XMLHttpRequest.send(null);
}
}
}[/code]
Добавлено 28.07.14 в 10:54:17:
Есть тут достойные кодеры или кроме флуда не знаем ничего?


Изм. 1 раз. / Посл. изм. (28 июл 2014, 17:35)
2.
Жысдогий * [мошенник] 10.6
(28 июл 2014, 10:56) [0/0] [0] [отв] [спам] [под] +1 | -1

Жаль, с ajax-ом не знаком*


Изм. 1 раз. / Посл. изм.
Жысдогий * [мошенник] 10.6
(28 июл 2014, 10:56)
3. [автор] (28 июл 2014, 10:57) [0/0] [0] [отв] [спам] [под] +1 | -1
Жысдогий,

Да тут больше не аякс, а удобность самой функции. Я бы сказал что тут аякса нет почти)) В основном простой js.

4.
Жысдогий * [мошенник] 10.6
(28 июл 2014, 10:59) [0/0] [0] [отв] [спам] [под] +1 | -1
t,fkf;f,fufl.re,

и этим "чудом" знаком не особо*

5. (28 июл 2014, 11:02) [0/0] [0] [отв] [спам] [под] +1 | -1

//Зачем закоментивать на энглише?

6. [автор] (28 июл 2014, 11:03) [0/0] [0] [отв] [спам] [под] +1 | -1
МАНЬЯК ЧИКАТИЛО,

хз, закрепляю инглишь, хочу выучить.. к меня весь код в нем)

7. (28 июл 2014, 14:41) [0/0] [0] [отв] [спам] [под] +1 | -1

Я бы в параметрах сделал два id (response_element_id, error_element_id), чтобы ошибку можно было писать в отдельный контейнер, на котором будут стили соответствующие сообщению об ошибке.
Добавлено 28.07.14 в 14:45:17:
if (args.method == 'POST') {
XMLHttpRequest.open(args.method, args.url, true);
XMLHttpRequest.setRequestHeader("content-type", "application/x-www-form-urlencoded"smile;
//
XMLHttpRequest.open(args.vars);
----------------
Мб последняя строка должна быть XMLHttpRequest.send(args.vars);
Исправь
Добавлено 28.07.14 в 14:54:00:
И наверное не забудь про вывод ошибки, если XMLHttpRequest не поддерживается.

8. [автор] (28 июл 2014, 17:02) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

спасибо) приятно видеть на этом сайте кодеров)

9. (28 июл 2014, 17:04) [0/0] [0] [отв] [спам] [под] +1 | -1

ebalazhabagadyuku, да не вопрос * Приятно поучаствовать в размышлениях других.
Добавлено 28.07.14 в 17:07:49:
Кстати, только сейчас обратил внимание, что параметры (args.vars) ты принимаешь строкой. Это не очень удобно, так как если в js например собирать данные из формы, то после их будет не удобно формировать в строку при вызове функции. Лучше будет принимать параметры объектом и уже в самой функции формировать из него строку.

10. [автор] (28 июл 2014, 17:31) [0/0] [0] [отв] [спам] [под] +1 | -1
ex0rc1st,

не совсем понял.
JS example:
[code]ajax(args = {
url: 'http://127.0.0.1/ajax/example.php',
vars: 'val1=1&val2=1&val3=3',
method: 'POST'
});[/code]
PHP example:
[code]// if user logged
if (isset ($_['user'])) {
// check ajax query
if (isset ($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
// check requested vars (GET/POST)
if (isset ($_POST['val1'], $_POST['val2'], $_POST['val3'])) {

}
else print 'Ошибка обработки данных.';
}
else print 'Ошибка запроса.';
}
else print 'Ошибка.<br/>
Вы не авторизированы.';
[/code]


Изм. 3 раз. / Посл. изм. (28 июл 2014, 17:35)
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 2
Скачать тему | Файлы темы | Фильтр сообщений