За последние 24 часа нас посетили 59146 программистов и 1846 роботов. Сейчас ищут 845 программистов ...

Двойное нажатие на кнопку. Как реализовать?

Тема в разделе "PHP для новичков", создана пользователем des1roer, 11 дек 2014.

  1. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    вот есть инпуты. в них вбиваю числа. жму сабмит - данные уходят в базу. на основании данных из базы в другие инпуты (readonly ) вписываются суммы. как бы мне сдеалать так чтобы сразу и данные сумм вбивались? по следующему нажатию на сабмит данные уходят в базу. можно ли как то сдублировать нажатие на сабмит? или есть какой то более элегантный вариант? прошу схему попроще и воздержаться от ответов типа переписывай на жаваскрипте
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а другие инпуты где находятся? на этой же форме? или это вообще другая форма?
    -если таже форма, то расчитывай всё на js и обновляй в инпутах и шли через ajax на сервер.
    -если эта другая форма - то перенаправляй на нее, указывая в GET нужные готовые параметры. и при формировании формы подставляй в инпуты готовые значения
     
  3. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    нет можно ПОЛНОСТЬЮ на js сделать. а можно парочкой функций отделаться.
    ну вот есть поле для ввода [ ] в него я написал число (пусть будет 10)
    есть поле для ввода [ ] в него я написал число (пусть будет 20)
    есть инпут ридонли для вывода [ ]
    я жму сабмит 10 и 20 улетают в базу. страничка перезагружается.
    в поле один (10) в поле два (20)
    в поле три обсчиталась сумма (30) на основании полей один и два.
    я жму сабмит - данные из всех полей улетают в базу. то есть сумма тоже в базе.
    ----------
    итог - как мне сделать так чтобы пользователь нажал кнопку один раз а сервер подумал что дважды и сразу залил в базу и введенные данные и сумму.
    ------
    для суммы там сложное вычисление. желания на js переписывать теже формулы никакого желания. потому то и есть желание применить такой грязный хак

    Добавлено спустя 44 секунды:
    обсчет суммы реализован на пхп. переписывать этот обсчет на js - дело муторное и неблагодарное. но обсчет идет на основании данных с базы. а в базе значения появляются после первого запроса
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    зачем так сложно? почему не сделать так?

    ну вот есть поле для ввода [ ] в него я написал число (пусть будет 10)
    есть поле для ввода [ ] в него я написал число (пусть будет 20)
    есть инпут ридонли для вывода [ ]
    я жму сабмит 10 и 20 улетают в базу. ТУТ имея всё что нужно для расчета формулы - МЫ СЧИТАЕМ по ФОРМУЛЕ нужное значение на php.
    Теперь у нас есть все три значения!!! НЕТ НЕОБХОДИМОСТИ показывать форму еще раз. данные из всех полей улетают в базу. то есть сумма тоже в базе.
    ПРОФИТ!!!
     
  5. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    а как вы обсчитаете несуществующие данные7
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    какие несуществующие? поле 3 же ридонли? оно вычисляется на основе полей 1 и 2? или не так?
    я понял так - как вы объяснили. если понял не так. объясняйте заново)
     
  7. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    в это поле данные заносятся на основании данных 1 и 2. эти данные пых получает после соединения с базой. я не использую js и динамически не подгружаю данные в поле 3
     
  8. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    я как раз говорю вам как это сделать без JS. вы либо непонимаете меня, либо задача стоит совсем другая, нежели то как описали её вы.

    чем конкретно неподходит описанный мной вариант? без использования второй формы вообще
     
  9. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    в общем что сделал. я понимаю что мой вариант плох всем чем только можно. но он прост и легко реализуем. какого критичного поведения я от страницы не ожидаю. и делает она конкретно то что нужно.


    <?
    if (!isset($_SESSION['act'])) $_SESSION['act'] = 0;
    if(isset($_POST['ses']))
    {
    if ($_SESSION['act'] == 1) $_SESSION['act'] =0;
    else $_SESSION['act'] =1;
    }
    ?>


    <form id="newFormAdv" method="post">
    <input type="submit" name="ses" id="some_element" value="Сохранить" onclick="document.getElementById('newFormAdv').submit()">
    </form>


    <script>
    function init()
    {
    var val = '<?php echo $_SESSION['act']; ?>';
    if (val == 1) {
    newFormAdv.ses.click();
    document.getElementById('Module15.HskL').innerHTML = 'сохранено';
    }
    }
    window.onload = init;
    </script>
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    o_O
    это чего?