За последние 24 часа нас посетили 16746 программистов и 1643 робота. Сейчас ищут 962 программиста ...

показать форму

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

  1. Erilar

    Erilar Активный пользователь

    С нами с:
    15 фев 2014
    Сообщения:
    21
    Симпатии:
    0
    На форме есть кнопка и форма.
    Не могу сделать так, чтобы при проверки через POST : если нажата кнопка, показать окно. Пробовал так:
    Код (Text):
    1. if (isset($_POST['update']))
    2. {
    3.     $id = $_POST['id'];
    4.     echo "document.getElementById('forma').style.display = 'block';";
    5. }
     
  2. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    -Доктор, у меня что-то болит.
    -Мне очень жаль ваше что-то.
     
  3. Erilar

    Erilar Активный пользователь

    С нами с:
    15 фев 2014
    Сообщения:
    21
    Симпатии:
    0
    if (isset($_POST['update']))
    {
    $id = $_POST['id'];
    echo "document.getElementById('forma').style.display = 'block';";
    }
    Где ошибка?
     
  4. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    И в код страницы посреди HTML вываливается строка текста document.getElementById('forma').style.display = 'block';, не несущая для браузера никакой смысловой нагрузки. Предыдущий вариант, который вы отредактировали, был чуток корректнее.

    А еще вроде как post['id'] какой-то цепляете, а нигде его не используете. Тогда зачем строка?

    З.Ы. Синтаксически код верен. И работоспособен вне контекста приложения. У вас не ошибка, у вас баг, некорректное поведение кода. Это нормально и естественно, когда логика кода изначально не отвечает ожиданиям. Что-то проглядели, что-то недодумали, и тд. И вам нужно освоить искусство дебага. 80% времени разработки будет уходить на него.
     
  5. Erilar

    Erilar Активный пользователь

    С нами с:
    15 фев 2014
    Сообщения:
    21
    Симпатии:
    0
    на post['id'] можно не обращать внимания, я просто из кода вырезал строки...
    А вообще можно задумку мою выполнить? может подскажете кто-нибудь?

    Добавлено спустя 8 минут 33 секунды:
    Вот подробнее форма:
    <?//изменение изделия
    if (isset($_POST['update']))
    {
    echo "document.getElementById('update_arch').style.display = 'block';";
    }
    ?>
    //ниже HTML код ->

    <form actoin="" method="post">
    <input type="submit" name="update" value="Показать форму" /></th>
    </form>

    //Скрытая форма ->
    <form id="update_arch" name="update_arch" style="display:none;">
    <input type="text" name="qwer" value="HELLO" />
    </form>
     
  6. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Отдаст просто строку, а не скрипт. Хотите скрипт, отдавайте:
    echo "<script type="text/javascript">document.getElementById('update_arch').style.display = 'block';</script>";

    Добавлено спустя 3 минуты 28 секунд:
    Но тут у вас будет другая проблема - при каждом клике на кнопку в страницу будет добавляться лишняя строка скрипта :)

    Да и хранить в скрытом виде форму, которая не должна работать без предыдущей..не правильно. Никто не помешает мне залезть, поправить код страницы и вуаля - мне доступны обе формы, а там мало ли.

    В ответе для аякса посылайте не скрипт, который делает форму видимой, а саму форму. И не будет проблем.
     
  7. Erilar

    Erilar Активный пользователь

    С нами с:
    15 фев 2014
    Сообщения:
    21
    Симпатии:
    0
    Да хоть бы и так, но вот проблема! Не работает эта строчка: echo "<script type='text/javascript'>document.getElementById('update_arch').style.display = 'block';</script>";

    Добавлено спустя 8 минут 49 секунд:
    Вот решение моей проблемы!:
    Код (Text):
    1.  
    2. <?//изменение изделия
    3. $show = 'none';
    4. if (isset($_POST['update'])) {  
    5.    $show = 'block';
    6. }
    7. ?>
    8. //ниже HTML код ->
    9.  
    10. <form actoin="" method="post">
    11. <input type="submit" name="update" value="Показать форму" />
    12. </form>
    13.  
    14. //Скрытая форма ->
    15. <form id="update_arch" name="update_arch" style="display: <?= $show ?>;">
    16. <input type="text" name="qwer" value="HELLO" />  
    17. </form>
     
  8. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Аххах:) Все верно. Вы же полностью страницу обновляли :)

    Но все равно присмотритесь к решению, когда новые объекты именно догружаются в страницу, а не скрываются/показываются.