Найти - Пользователи
Полная версия: ajax + немного YUI
Начало » Django » ajax + немного YUI
1
birst
пытаюсь разобратся с ajax на этом примере
вот мой вьев , я упростил на столько , чтобы при любом ПОСТ запросе с кеем хhr мне передавалась простая информация
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.views.generic.simple import *
from django.utils import simplejson

def ajax_example(request):
if not request.POST:
return render_to_response('testing/ajax_example.html', {})
xhr = request.GET.has_key('xhr')
response_dict = {'test' : test }
if xhr:
return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')
return render_to_response('testing/ajax_example.html', response_dict)
вот код темплейта (офф: как сделать чтобы хтмл код в теге code отобрадался как текст)
я тут немного поменял кое что , не хотел просто заморачиватся с YUI , а целью было просто получить ответ и вывести его алертом

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN”
"http://www.w3.org/TR/html4/strict.dtd“>
<html lang=”en“>
<head>
<title>Django AJAX example</title>
</head>
<body>
<h1>Django AJAX example</h1>
<form method=”POST“ action='' id='ajax_example' onsubmit='return AjaxTest();'>
<input type=”text“ id=”id_name“ name=”name“ value=”“>
<input type=”text“ id=”id_total“ name=”total“ value=”“>
<input type=”submit“ id=”send_form“ value=”Send“>
</form>
<script type=”text/javascript“>
var req;
function AjaxTest()
{
req = null;
if (window.XMLHttpRequest) {
try {
req = new XMLHttpRequest();
} catch (e){}
} else if (window.ActiveXObject) {
try {
req = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e){
try {
req = new ActiveXObject('Microsoft.XMLHTTP');
} catch (e){}
}
}

if (req) {
req.onreadystatechange = processReqChange;
req.open(”POST“,”http://localhost/mysite/testing?xhr“,true);
req.send(null);
alert(”send OK“);
}
return false;
}

function processReqChange()
{
if (req.readyState == 4) {
if (req.status == 200) {
alert(req.responseText);
} else {
alert(”no data:\n" +
req.statusText);
}
}
}
</script>
</body>
</html>

так вот в результате в логах апача я вижу
127.0.0.1 - - “POST /mysite/testing/?xhr HTTP/1.1” 200 1405
алерт выводит мне текст моего темплейта , т.е. как будто бы ответ дает
не
return HttpResponse(simplejson.dumps(response_dict), mimetype='application/javascript')
а
return render_to_response('testing/ajax_example.html', response_dict)
и еще вопрос , по YAHOO.util.Connect.setForm и YAHOO.util.Connect.asyncRequest

как я понял оно собирает пары - имя и значение инпута и создает строку , которая потом вставляется в запрос который обязательно должен идти следом? если не использовать тулкиты , и делать на чистом джава-скрипте каков должен быть порядок действий ? перебираем все инпуты выделяя пары и при помощи setRequestHeader(label, value) вставляем заголовки в запрос и отсылаем ?

спасибо
diadya_vova
>>чтобы хтмл код в теге code отобрадался как текст
есть такой тэг - “PRE”

Спасибо за ссылку, с удовольствием почитал :)
Что-бы лучше узнать как ведет себя код, пользуйся отладчиком.
И попробуй сделать сначала, как у автора стаьи - без АЯКСа.
birst
там 2 части одного примера вот и вот
diadya_vova
Спасибо :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB