Отправка формы из XSLT-документа, из Оперы

POLTER

Новичок
Отправка формы из XSLT-документа, из Оперы

Здравствуйте.
Проблема в следующем: в Опере не отправляются данные формы (хоть POST, хоть GET) из XML-документа, оформленного с помощью XSLT.
Вот пример: форма из обычного html-документа: http://chatok.isrv.ru/xsl/simple.php (тут, естественно, все работает)
А вот форма, выведенная с помощью XSLT: http://chatok.isrv.ru/xsl/xsl.php.
Попробуйте из IE или FireFox, там все отлично, а в Опере - данные просто не отправляются.
Тестировал в версии 9.20, в 9.24 такая же проблема.
Как можно это исправить?
Спасибо.
 

slach

Новичок
ну видимо никак =)
попробуйте Opera9.5

-~{}~ 29.10.07 10:25:

а точно данные не отсылаются???

var_dump($_POST);
первой строкой в xsl.php пробовали?
 

dark-demon

d(^-^)b
думаю проблема в серверном скрипте.. ибо опера что-то посылает и что-то принимает.
 

slach

Новичок
сниффер показывает что ничего не отсылается

POST /xsl/xsl.php HTTP/1.1
User-Agent: Opera/9.50 (Windows NT 5.1; U; ru)
Host: chatok.isrv.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://chatok.isrv.ru/xsl/xsl.php
Cookie: PHPSESSID=48b5cbfb0628b5ea35257ede4b50cb59
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

дальше пустота

ну видимо это проблемы оперы
что еще раз доказывает что клиентская XSLT трансформация не такая уж хорошая штука =)
 

POLTER

Новичок
Данные точно не отсылаются.
массив $_POST пуст.
В серверном скрипте проблем быть не может, т.к. из других броузеров все работает.
Похоже, придется делать все на аяксе - отправлять формы через XMLHttpRequest.
Спасибо всем за внимание!
 

Jenius

Новичок
Действительно ничего не отсылает в опере, в експлорере, сафари, фаерфоксе все работает.
А можно код посмотреть?

В моей cms всё отправляется без проблем, во всех браузерах. Всё вывожу через XSLT.
 

POLTER

Новичок
Автор оригинала: dark-demon
попробуй взять за основу эту xsl-ку. у меня таких проблем небыло.
Код:
<t:stylesheet version="1.0"
  xmlns="http://www.w3.org/1999/xhtml"
  xmlns:t="http://www.w3.org/1999/XSL/Transform"
  xmlns:h="http://www.w3.org/1999/xhtml">
<t:output
  method= "html"
  omit-xml-declaration= "yes"
  encoding= "utf-8"
  indent= "no"
  media-type= "text/html"
  cdata-section-elements= "script style"
  doctype-public= "-//W3C//DTD XHTML 1.0 Strict//EN"
  doctype-system= "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<t:template match="content">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
  </head>
  <body>
    <b><t:copy-of select="child::node()" /></b>
  </body>
  </html>
</t:template>
</t:stylesheet>
Такой вариант тоже в опере не отправляет. Это почти тоже самое, что было у меня.
 

Polimer

Новичок
Cори, за то что поднимаю тему месячной давности, но
удалось отчасти побороть этот глюк на опере 9.2х таким макаром:

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:eek:utput method="xml" indent="no" omit-xml-declaration="yes" standalone="yes"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" encoding="windows-1251" />

вероятно здесь основное — method="xml" и явное задание xmlns у корня. В опере 9.50 работает и ваш вариант.
 

dark-demon

d(^-^)b
method="html" опера вообще недолюбливает, но это единственный способ перевести ИЕ в режим "вменяемого рендеринга". :(
 

Polimer

Новичок
dark-demon, а в чем здесь выражается невменяемость ие? Когда я использую приведенный код, ие на редкость "вменяем", прям удивляюсь сам.
 

dark-demon

d(^-^)b
у ие есть два режима рендеринга: совместимый с устаревшими браузерами (эмулируются глюки древних ишаков) и совместимый со стандартами (рендерит так, как и все остальные). так вот, указание <?xml в начале файла переводит ИЕ в первый режим. а method="xml" соответственно добавляет сию злополучную конструкцию. а на omit-xml-declaration ишаку глубоко накласть...

вообще, я решил отказаться от xslt преобразований в опере, ибо всё-ещё сыро.
вот, например: http://www.biglist.com/lists/xsl-list/archives/200707/msg00166.html - в 9.5 судя по всему эта бага пофиксена не будет.

зато теперь можно юзать замечательную функцию document() не вызывающую в остальных трёх браузерах падения трансформатора...
 
Сверху