Post формы через Javascript или стандартно

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем admin, 24 авг 2005.

  1. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Такой вопрос есть.

    Отличаются-ли внутренне конструкции.

    HTML:
    <input type="button" onclick="document.adminForm.submit();" />

    и

    <input type="submit" />
    спросил вот почему.
    начал я баловаться редактором SPAW, так вот если отправлять по первому принципу, то в массив $_POST значение этого редактора идёт старое. Например если до этого там было написано "Hello people", то изменяя в нем это значение, например на "Hello boys & girls" мы в $_POST получим "Hello people", а если делать через второй вариант без Javascript, то всё нормально. Массив меняется.
    Как бы это дело обмануть? Т.к. через тип submit отправлять форму меня не совсем устраивает.
     
  2. Andrew Stephanoff

    Andrew Stephanoff Гость

    Репутация:
    0
    по идее не должны отличаться..
     
  3. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Для: Andrew Stephanoff
    это по идее :)
    при отправке формы через метод submit(), а не через кнопку <input type="submit" /> в форме не происходит событие "onsubmit", поэтому SPAW (а также большинство WYSIWYG редакторов) не обновляет значение элемента формы, к которому он привязан.
     
  4. Andrew Stephanoff

    Andrew Stephanoff Гость

    Репутация:
    0
    на w3c.org написано, что
    хотя набросал тестовую страничку -- действительно, onSubmit() не вызывается :)
     
  5. Andrew Stephanoff

    Andrew Stephanoff Гость

    Репутация:
    0
    но проблему не понял все равно.. сделал тестовую страничку с двумя кнопками и скрипт, который выводит на экран переменную.. как я не отправлял -- результат одинаковый...
    Код (Text):
    <html>
    <head>
    <title>test</title>
     <script language="JavaScript">
    onClick = function() {
     var frmTest = document.getElementById("frmTest");
     frmTest.submit();
    }
     </script>
    </head>

    <body>

    <form action="test.php" method="post" target="_blank" id="frmTest">
     <input type="text" name="txtTest" value="" />
     <input type="submit" value="submit" />
     <input type="button" value="button" onclick="onClick();" />
    </form>

    </body>
    </html>
    Код (Text):
    <?php
     $txt_test = $_POST["txtTest"];
     echo $txt_test;
    ?>
     
  6. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Для: Andrew Stephanoff
    знаю, но я понял в чём фишка.
    когда делаешь frmTest.submit();, то не выполняется событио onSubmit для формы.
    решение такое.
    перед frmTest.submit(); надо вставить
    Код (Text):
        try {
    document.frmTest.onsubmit();
    }
    catch(e){}
     
  7. Andrew Stephanoff

    Andrew Stephanoff Гость

    Репутация:
    0
    <!--QuoteBegin-Серёга+30:08:2005, 11:14 -->
    <span class="vbquote">(Серёга @ 30:08:2005, 11:14 )</span><!--QuoteEBegin-->Для: Andrew Stephanoff
    знаю, но я понял в чём фишка.
    когда делаешь frmTest.submit();, то не выполняется событио onSubmit для формы.
    решение такое.
    перед frmTest.submit(); надо вставить
    Код (Text):
        try {
    document.frmTest.onsubmit();
    }
    catch(e){}
    [snapback]24269" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    onSubmit не вызывается, это я заметил :P но вот почему у тебя в $_POST[] попадали старые значения не понял..
    и еще, ты вызываешь frmTest.onSubmit(); но это же событие, а не метод, вроде его можно только назначить, да и в спецификации DOM у form только два метода: void submit(); и void reset();
     
  8. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    Для: Andrew Stephanoff
    я знаю про это.
    тем не менее it works! %)
    загадок искать не буду, почему что и как. просто не времени, надо делать проект.
    просто скачай SPAW Editor и потести его, если интересно.
     
  9. Andrew Stephanoff

    Andrew Stephanoff Гость

    Репутация:
    0
    хммм.. :P очень интересно :P у меня конструкция frmTest.onsubmit(); не прокатила :P ни в IE, ни в opera ни в FireFox

    Код (Text):
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
     <title>test</title>
     <script language="JavaScript">
    onSubmit = function() {
     window.alert("hooray!!");
    }  
    onClick = function() {
     var frmTest = document.getElementById("frmTest");
     try {
       frmTest.onSubmit();
     } catch(e) {
       window.alert("ooops!!");
     }
     frmTest.submit();
    }
     </script>
    </head>

    <body>

    <form id="frmTest" onsubmit="onSubmit();">
     <input type="submit" value="submit" />
     <input type="button" value="button" onclick="onClick();" />
    </form>

    </body>
    </html>
    но вот такой вариант работает
    Код (Text):
    onClick = function() {
     var frmTest = document.getElementById("frmTest");
     onSubmit();
     frmTest.submit();
    }
     
Загрузка...
Похожие Темы - Post формы через
  1. rinsk
    Ответов:
    19
    Просмотров:
    305
  2. Lisenok
    Ответов:
    0
    Просмотров:
    125
  3. Rocket
    Ответов:
    3
    Просмотров:
    349
  4. Dosia
    Ответов:
    5
    Просмотров:
    302
  5. Serduko
    Ответов:
    2
    Просмотров:
    582

Поделиться этой страницей