Здесь курят мануал.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 26 Май, 2012, 01:42:09

Страниц: [1]
Печать
Автор Тема: Как обработать форму и собрать из нее строку с текстовыми элементами формы?  (Прочитано 2985 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adw0rd    ↓ 
27 Сентябрь, 2007, 02:39:09
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

Жаба код:
 
id формы = "secForm"
 
Text
var data = "";
var xdata = document.getElementById("secForm");
for each (var item in xdata) {
    data = data + item;
}

в data попадает:
 
string(5597) "[object HTMLInputElement][object HTMLInputElement][object HTMLSelectElement][object HTMLInputElement]FORMnull1[object HTMLDivElement][object NodeList][object Text][object Text][object Text][object Text][object NamedNodeMap][object HTMLDocument]function insertBefore() {
    [native code]
}function replaceChild() {
    [native code]
}function removeChild() {
    [native code]
}function appendChild() {
    [native code]
}function hasChildNodes() {
    [native code]
}function cloneNode() {
    [native code]
}function normalize() {
    [native code]
}function isSupported() {
    [native code]
}nullnullFORMfunction hasAttributes() {
    [native code]
}FORMfunction getAttribute() {
    [native code]
}function setAttribute() {
    [native code]
}function removeAttribute() {
    [native code]
}function getAttributeNode() {
    [native code]
}function setAttributeNode() {
    [native code]
}function removeAttributeNode() {
    [native code]
}function getElementsByTagName() {
    [native code]
}function getAttributeNS() {
    [native code]
}function setAttributeNS() {
    [native code]
}function removeAttributeNS() {
    [native code]
}function getAttributeNodeNS() {
    [native code]
}function setAttributeNodeNS() {
    [native code]
}function getElementsByTagNameNS() {
    [native code]
}function hasAttribute() {
    [native code]
}function hasAttributeNS() {
    [native code]
}123456789101112secForm[object HTMLCollection]7secFormpostfunction reset() {
    [native code]
}410948690[object HTMLTableCellElement]

#####################
 
Мне надо содержимое следующих объектов:
 
HTMLInputElement
HTMLInputElement
HTMLSelectElement
HTMLInputElement
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
27 Сентябрь, 2007, 02:46:23 , спустя 7 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

может что-то наподобие?
 
Text

var data = "";
var xdata = document.getElementById("secForm");
for each (var item in xdata) {
    data = data + xdata.elements[item].value);;
}
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
27 Сентябрь, 2007, 04:18:45 , спустя 1 час 32 минуты 22 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

Text
        for (var i=0;i<document.forms.secForm.elements.length-1;i++) {
            data = data + document.forms.secForm.elements[i].value;
        }

так работает...
 
только данные которые вводишь в элементы формы не появляются, то есть остаются старые данные.
 
допустим что-то типа того:
 
Text

<?php
 
      $id = 2; //id поля в базе
      $val = "blabla"; //просто любой текст
 
?>
 
<!-- xhtml код -->
 
<script type="text/javascript" language="JavaScript" src="JsHttpRequest.js"></script>
<script type="text/javascript" language="JavaScript">
function doLoadSection(action, value) {
    // Create new JsHttpRequest object.
    var req = new JsHttpRequest();
    // Code automatically called on load finishing.
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // Write result to page element (_RESULT becomes responseJS).
            //document.getElementById('doLoadSectionResult').innerHTML =
            //  req.responseJS.val;
            // Write debug information too (output becomes responseText).
            document.getElementById('doLoadSectionBody').innerHTML = req.responseText;
        }
    }
 
    var data = "";
    if(action == 'svSec') {
        for (var i=0;i<document.forms.secForm.elements.length-1;i++) {
            data = data + document.forms.secForm.elements[i].value;
        }
    }
   
    // Prepare request object (automatically choose GET or POST).
    req.open(null, 'ajax_backend.php', true);
    // Send data to backend.
    req.send( { act: action, val: value, data: data} );
   
}
</script>
 
<!-- xhtml код -->
 
<form name="secForm" action="JavaScript:doLoadSection('svSec', '<?php print $id; ?>'); void(0);" method="post">
<input type="text" name="c_name" value="<?php print $val; ?>" />
<input type="submit" value="OK" />
</form>
 
<!-- xhtml код -->
 
 

то есть выводится форма у которой есть элемент "c_name" со значением "blabla"
если изменить данные и нажать субмит, то в жабу попадают не новые данные, а остается blabla...
« Последнее редактирование: 27 Сентябрь, 2007, 04:38:54 от vasa_c » Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
md5    ↓ 
27 Сентябрь, 2007, 04:30:52 , спустя 12 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

выезд, апартаменты, массаж, стриптиз, подружки, дорого
Группа: в ухо

Карма: не нужна
Сообщений: 10495
Сила слова: 1.19

document.forms.secForm
помойму можно заменить на document.getElementById('secForm')
Записан

8: Undefined variable: str
Файл: /home/pyha/pyha.ru/forum/bbcode/Xbb/Tags/Man.php
Строка: 18
adw0rd: мудень блять, я уже фиксить стал эту фигню :)
md5: вуахахахаха
adw0rd    ↓ 
27 Сентябрь, 2007, 04:32:43 , спустя 1 минуту 51 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67


document.forms.secForm
помойму можно заменить на document.getElementById('secForm')

можно... но ИМХО не суть
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
27 Сентябрь, 2007, 05:38:29 , спустя 1 час 5 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

vasa_c ПАМАГИ!!!))))
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
27 Сентябрь, 2007, 05:45:55 , спустя 7 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Уверен, что именно в момент вычисления data лажает? Может с аяксом проблемы. alert(data) сделай.
Записан

adw0rd    ↓ 
27 Сентябрь, 2007, 08:18:57 , спустя 2 часа 33 минуты 2 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67


Уверен, что именно в момент вычисления data лажает? Может с аяксом проблемы. alert(data) сделай.

Спасибо, заработало все уже))
 
до этого алерт выводил старые данные, но я перезагрузил FF вместе с плагинами (firebug, greasemonkey, web developer, html tidy и т.д.) и все заработало... я в шоке!!! мне FF и/или его плагины весь день убили, я все перерыл в сети по этому поводу... а это оказался FF... млин
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1]
Печать
 

Перейти в: