[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: подгрузка данных ajaxом
mamant
У меня есть xsl шаблон:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl">
<xsl:output
method="html" encoding="utf-8" indent="yes" omit-xml-declaration="yes" media-type="text/html" />
<xsl:variable
name="buldings" select="document('buldings.xml')/bulding/buld"/>
<xsl:variable
name="buldAUD" select="document('buldAUD.xml')/buldAUD/buldingAUD"/>
<xsl:variable
name="departments" select="document('departments.xml')/department/depart"/>
<xsl:variable
name="departAUD" select="document('departAUD.xml')/depAUD/departAUD"/>


<xsl:include
href=""/> <!--обязательный первый пустой инклюд для того, чтобы движок подключил сюда templates/common.xslt-->
<xsl:variable name="dummy-img-dir" select="concat(/page/http-root, '/module/img')"/> <!--переменная, где находятся картинки, стили и скрипты модуля-->
<xsl:variable name="href-to-dummy" select="concat(/page/http-root, '/')"/>


<xsl:template
match="page[@mode='ajax']">
ЗДЕСЬ ЗДАНИЕ ЗДОРОВЬЕ
</xsl:template>

<xsl:template
name="content">
<xsl:apply-templates
select='module'/>
</xsl:template>




<xsl:template
match="module">


<form
id="search">
<div>
<div
style="vertical-align:0px;">
размер аудитории (не менее) <input type="text" name="capacity" size="5" id="capacity"/>
</div>
</div>
<br/>

этаж<div class="uniq5" style="display:inline;">
<input
type="text" name="floor[]" size="5" id="floor"/><!-- "SELECT .. WHERE floor IN (". join(' , ', $_GET['floor']).");" -->
<img class= "addfield" title="добавить строчку" src="plus.png" onclick="" />
<img
class= "delfield" title="удалить строчку" src="minus.png" />
</div>
<br/>
<br/>

корпус<select name="bulding" multiple="true" id="bulding">
<xsl:for-each
select="$buldAUD">
<option
value='{@aud}'>
<xsl:variable
name="buildAUD" select="@aud"/>
<xsl:value-of
select="$buldings[@num=$buildAUD]"/>
</option>
</xsl:for-each>
</select>


кафедра<select name="department" multiple="true" id="department">
<xsl:for-each
select="$departAUD">
<option
value='{@daud}'>
<xsl:variable
name="departAUD" select="@daud"/>
<xsl:value-of
select="$departments[@num=$departAUD]"/>
</option>
</xsl:for-each>
</select>
<br/>
<br/>
<input
type = "submit" name="view_res" value = "Показать результаты" />

</form>

<div
id="rezultat">
<xsl:for-each
select="/root/audit/aud">
<table>
<tr>

<td
align="center">
<input
type="hidden" name="id" value="{@id}"/><xsl:value-of select="@capacity" />
</td>
<td
align="center">
<xsl:value-of
select="@name" />
</td>
<td
align="center">
<xsl:value-of
select="@floor" />
</td>
<td
align="center">
<xsl:variable
name="building" select="@bulding"/>
<xsl:value-of
select="$buldings[@num=$building]" />
</td>
<td
align="center">
<xsl:variable
name="department1" select="@department"/>
<xsl:value-of
select="$departments[@num=$department1]" />
</td>
<td
align="center">
<a
href="redact_data.php?id={@id}">Редактировать</a>
<a
href="delete.php?id={@id}">Удалить</a>
</td>
</tr>
</table>
</xsl:for-each>
</div>

<script
type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script
type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script>
<script
type="text/javascript" src="js/i18n/ui.datepicker-ru.js"></script>
<script
type="text/javascript" src="js/script.js"></script>
<script
type="text/javascript">

$('img.addfield').click(function()
{
var s = $(this).parents('.uniq5');
s.clone(true).insertAfter(s);
});

$('img.delfield').click(function()
{
if($('div.uniq5').size() > 1)
$(this).parent().remove();
});

//$('#search').submit(function()
{
// $.ajax(
// {
// type: "POST",
// url: "<xsl:value-of select="${href-to-dummy}"/>ajax/",
// data: "capacity="+$("#capacity").val(),
// success: function(html){
// $("#rezultat").html(html);
// }
// });
// return false;
//});




</script>

</xsl:template>

</xsl:stylesheet>





Изначально мне нужно вывести просто форму поиска, без результатов. После нажатия на кнопку показать результаты, полученные из пхп скрипта данные нужно отобразить в <div id="rezultat">.

Как правильно для этого оформить ajax скрипт? Подскажите, пожалуйста, совсем запутался(



Спустя 1 час, 16 минут, 36 секунд (4.06.2010 - 11:16) mamant написал(а):
забыл уточнить, в пхп скрипте данные через DOМ в xml формируются...т.е. получается аякс должен хмл данные обратно получить?

Спустя 2 минуты, 26 секунд (4.06.2010 - 11:18) twin написал(а):

Спустя 23 часа, 19 минут, 54 секунды (5.06.2010 - 10:38) mamant написал(а):
без использования того класса как можно реализовать?

я попробовал так:



function view_rez(e, capacity, view_res)
{
$.ajax(
{
type: "POST",
url: "<xsl:value-of select="$href-to-dummy"/>ajax/",
data: { action:'view_res', capacity: capacity }
success: $('#rezultat').ajaxSuccess(function(e) {
$(this).text(e.type);
});
});
}




фаирбаг ругается в этом месте:

	
<input type = "button" value = "Показать результаты" onclick="view_rez(event, {@capacity}, 'view_res')" />
точнее:
onclick="view_rez(event, {@capacity}, 'view_res')"


Спустя 3 часа, 22 минуты, 56 секунд (5.06.2010 - 14:01) Michael написал(а):
Цитата
без использования того класса как можно реализовать?

ты же jQuery используешь - тебе тот класс нужен так же как рыбке - зонтик laugh.gif

Цитата
onclick="view_rez(event, {@capacity}, 'view_res')"


{@ - Это что такое? Или наугад?

Цитата
success: $('#rezultat').ajaxSuccess(function(e) {

Это что такое? success всегда функцией была.

В общем учим основы уважаемый.

Спустя 3 часа, 23 минуты, 43 секунды (5.06.2010 - 17:25) mamant написал(а):
{@capacity} - в xsl'е значение подставляю.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.