За последние 24 часа нас посетили 59179 программистов и 1834 робота. Сейчас ищут 900 программистов ...

Автоматический submit

Тема в разделе "JavaScript и AJAX", создана пользователем Aleksandrbugrov, 5 июн 2015.

  1. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Есть условие:
    Код (PHP):
    1. if($_POST["confirm"])
    2. {                        
    3. $orderNumber=$_POST["orderNumber"];
    4. $amount=$_POST["amount"];
    5. $res = mysql_query("SELECT * FROM agreements WHERE number = ".$orderNumber."") ;
    6. $a = gettype($res);
    7. if ($a == 'boolean') 
    8. {echo 'ошибка';}
    9. else{
    10.     echo '<form action="test.php" method="post" id="log"><input type="hidden" name="orderNumber" value='.$orderNumber.'><input type="hidden" name="amount" value='.$amount.'></form><script> document.["log"].submit(); </script>';
    11.     
    12.           }
    13. }
    14.  
    При прохождении проверки, должен отправляться запрос POST на test.php, без нажатия кнопки submit. Данные в форму приходят, но не отправляются. Подскажите, как быть. Подозреваю, что неправильно пишу
    Код (PHP):
    1. <script> document.["log"].submit(); </script>
    Но ничего в голову не приходит

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (PHP):
    1. <script> document.["log"].submit(); </script>
    а вот эта хрень должна разве работать? включи вывод ошибок в браузере, посмотри, надо вроде как писать:
    Код (PHP):
    1. document.getElementById("log").submit(); 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  3. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Так тоже не работает
    В браузере:
    Код (Text):
    1. Uncaught TypeError: Cannot read property 'submit'
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    не знаю на сколько поможет, но так вроде как будет правильнее, поставь форме атрибут name, за место getElementById сделай поиск по name, ну и попробуй.
     
  5. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Код (Text):
    1. Uncaught TypeError: document.getElementsByName(...).submit is not a function
    Это по ByName.
     
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    а то, что было до этого с getElementById, оно верно было написано? потому что написано что property, т.е. свойство, может там было забыто поставить скобки? вот оно и писало, что нет такого свойства.
     
  7. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Верно, скобки стояли.

    Добавлено спустя 6 минут 40 секунд:
    Может дело в том, что у меня нет кнопки. Но если я ее добавлю, как мне ее скрыть?
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    атбирут hidden не работает?
     
  9. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    не, знаю у меня все работает:
    Код (PHP):
    1. <script>
    2. function Send()
    3. {
    4.     document.getElementById('frm').submit();
    5. }
    6. </script>
    7.  
    8. <form method="GET" id="frm">
    9. <div><input type="text" name="zzz"></div>
    10. <div><input type="button" name="btn" onclick="Send()" value="Отправить"></div>
    11. </form>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  10. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Так он будет работать при нажатии кнопки, а мне нужно автоматом после наступления
    Код (Text):
    1. else{
    2.     echo '<form
    Добавлено спустя 5 минут 18 секунд:
    Сделал, как у Вас, опять выдает Uncaught TypeError: document.getElementsByName(...).submit is not a function
     
  11. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну так и сделай, рабочий код выше, на его основе, только желательно прицепить отправку после полной загрузки страницы.
    А если вдруг не прокатит, возможно это отключено в браузере из соображений безопасности.

    Добавлено спустя 8 минут 53 секунды:
    Код (PHP):
    1. <form method="GET" id="frm">
    2. <div><input type="text" id="zzz" name="zzz"></div>
    3. </form>
    4.  
    5. <script>
    6. window.onload = function() {
    7.     
    8.     var inp = document.getElementById('zzz');
    9.     if (inp.value == '' || null == inp.value)
    10.     {
    11.         inp.value = 'hello';
    12.         document.getElementById('frm').submit();
    13.     }
    14. };
    15. </script>
    ну и вот, все отправляется, только криво работает (вроде как отправляется, отправляется и так до бесконечности) потому что это пример и мне лень тратить на него время.
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    кто то учитывает что getElementsByName вернёт массив элементов?
     
  13. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Может есть у кого нормальная идея как это сделать?
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Просто читаемдокументацию.
    Потому что элемент, у которого этот сабмит вызывается, должен быть именно формой. Не кнопкой сабмит. Не полем ввода, не пачкой полей, а именно формой с конкретным id.
     
  15. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    ID формы есть, но он все равно не отправляет не по ID не по name
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Значит что-то неправильно делаете. Только и всего.
    У меня все работает.

    Код (Text):
    1. document.getElementById('log').submit();
     
  17. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Внимание вопрос: ЧТО? Весь листинг этой части кода перед Вами. Вывод ошибок тоже. Очень просто сказать "что-то не так делаете". Сам знаю, что должно работать. Но не работает(((
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Контекстно-зависимый листинг, который не работает без простыни, из которой его выдрали. Гадать я не умею.
    Конструкция на JS, которую вам предоставили, рабочая. Значит ищите косяки в другом месте. Может быть то, что вы вставляете в качестве значения, тупо ломает форму, всякое бывает.
     
  19. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Код (PHP):
    1. <html>
    2. <head>
    3.  <title>123</title>
    4.  <link type="text/css" rel="stylesheet" media="all" href="Sberbank_files/style1.css">
    5.  <script src="js/jquery.min.js"></script>
    6.  <script src="js/jquery.plugins.js"></script> 
    7.  <script src="js/jquery-1.4.2.min.js"></script> 
    8.  </head>
    9.     <body>
    10.     
    11.     <?php 
    12.          $host = "localhost";
    13.         $name = "root";
    14.         $password = "";
    15.         $db = "billing";
    16.         @mysql_connect($host,$name,$password) or die(mysql_error());
    17.         @mysql_select_db($db) or die(mysql_error());
    18.         mysql_query("SET NAMES utf8");        
    19.     ?>    
    20.                         <br>
    21.                                 <div id="wrap">
    22.                                     <div class="logo"></div>
    23.             <br>
    24.  
    25.                                     <hr align="left" width="872px">
    26.                                     <span class="text" style="margin-left: 7px;">      123 </span>
    27.                             <table cellpadding="5">
    28.                                                         <br><br>
    29.                     <tbody>
    30.                         <tr valign="top">
    31.                             <td valign="top">
    32.                                 <span class="text">Номер договора:    </span>
    33.                             </td>
    34.                             <td>
    35.                                     <form action="index.php" method="post">
    36.                                             <input type="text" value="" name="orderNumber" size=10 maxlength=8 required autocomplete="off"> 
    37.                             </td>
    38.                         </tr>    
    39.                             <input type="hidden" name="confirm" id="confirm" value="12345"> 
    40. <tr><td>                        
    41.                         <?php
    42.                         
    43. if($_POST["confirm"])
    44. {                        
    45. $orderNumber=$_POST["orderNumber"];
    46. $amount=$_POST["amount"];
    47. $res = mysql_query("SELECT number FROM agreements WHERE number = .$orderNumber.") ;
    48. $a = gettype($res);
    49. if ($a == 'boolean') 
    50. {echo 'ошибка';}
    51. else{
    52.     echo '<form action="test.php" method="post" id="log" name="log"><input type="hidden" name="orderNumber" value='.$orderNumber.'><input type="hidden" name="amount" value='.$amount.'></form><script type="text/javascript"> document.getElementById('log').submit(); </script>';
    53.     
    54.           }
    55. }
    56. ?>
    57. </td>
    58. </tr>                        
    59.             <tr valign="top">
    60.                             <td valign="top">
    61.                                 <span class="text">Сумма списания в рублях:</span>
    62.                             </td>
    63.                             <td>
    64.                                             <input type="text" value="" name="amount" size=10 maxlength=8 required autocomplete="off"> 
    65.         </td>
    66. <tr>                    
    67. <td>        
    68.                                 <input type="submit">
    69.                             </form>
    70.                             </td>
    71.                             </tr>
    72.                             </tr>
    73.  
    74.             </tbody>                    
    75.                             
    76.                             
    77.                             
    78.                             
    79.                             
    80.                             
    81.                 
    82.             </div>                
    83.                             
    84.                             
    85.                             
    86.                             
    87.                             
    Полный код. Вырывать больше неоткуда. Значения в форму приходят в виде числа из POST.Ломать здесь нигде ничего не может.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  20. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вы код, который я выше привел, проверили? Работает? Ошибку, мол submit не может быть вызван, выбрасывает? Нет. Значит отлаживайте дальше уже на своей стороне.
     
  21. Aleksandrbugrov

    Aleksandrbugrov Новичок

    С нами с:
    5 июн 2015
    Сообщения:
    15
    Симпатии:
    0
    Адрес:
    г. Урень
    Поменял в head <script src> на
    Код (Text):
    1. <script src='http://code.jquery.com/jquery-2.1.1.min.js'></script>
    Теперь пишет,
    Код (Text):
    1. Uncaught TypeError: Cannot read property 'submit' of null(anonymous function) @ index.php:31
    Может что-то с js не так???
     
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Автор, а ты вообще знаешь, что тут происходит?
    Код (Text):
    1.  <script src="js/jquery.min.js"></script>
    2.  <script src="js/jquery.plugins.js"></script>
    3.  <script src="js/jquery-1.4.2.min.js"></script>
    например, ты в курсе, что зачем-то дважды цепляешь JQuery, причем между ними цепляешь плагины, которые, при втором одцеплении, наверняка оборвутся. А потом не используешь эту библиотеку.

    С JS все так. Ругать машину - последнее дело и удел тех, кто считает, что сам он косячить не может.
    Попробуйте воспроизвести то, что вам нужно, на отдельной странице, без всего этого мусора.
    Потом выясняйте, что мешает ей работать. Мб вы просто где-то тег не закрыли и пошло-поехало.