На форме есть кнопка и форма. Не могу сделать так, чтобы при проверки через POST : если нажата кнопка, показать окно. Пробовал так: Код (Text): if (isset($_POST['update'])) { $id = $_POST['id']; echo "document.getElementById('forma').style.display = 'block';"; }
if (isset($_POST['update'])) { $id = $_POST['id']; echo "document.getElementById('forma').style.display = 'block';"; } Где ошибка?
И в код страницы посреди HTML вываливается строка текста document.getElementById('forma').style.display = 'block';, не несущая для браузера никакой смысловой нагрузки. Предыдущий вариант, который вы отредактировали, был чуток корректнее. А еще вроде как post['id'] какой-то цепляете, а нигде его не используете. Тогда зачем строка? З.Ы. Синтаксически код верен. И работоспособен вне контекста приложения. У вас не ошибка, у вас баг, некорректное поведение кода. Это нормально и естественно, когда логика кода изначально не отвечает ожиданиям. Что-то проглядели, что-то недодумали, и тд. И вам нужно освоить искусство дебага. 80% времени разработки будет уходить на него.
на 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>
Отдаст просто строку, а не скрипт. Хотите скрипт, отдавайте: echo "<script type="text/javascript">document.getElementById('update_arch').style.display = 'block';</script>"; Добавлено спустя 3 минуты 28 секунд: Но тут у вас будет другая проблема - при каждом клике на кнопку в страницу будет добавляться лишняя строка скрипта Да и хранить в скрытом виде форму, которая не должна работать без предыдущей..не правильно. Никто не помешает мне залезть, поправить код страницы и вуаля - мне доступны обе формы, а там мало ли. В ответе для аякса посылайте не скрипт, который делает форму видимой, а саму форму. И не будет проблем.
Да хоть бы и так, но вот проблема! Не работает эта строчка: echo "<script type='text/javascript'>document.getElementById('update_arch').style.display = 'block';</script>"; Добавлено спустя 8 минут 49 секунд: Вот решение моей проблемы!: Код (Text): <?//изменение изделия $show = 'none'; if (isset($_POST['update'])) { $show = 'block'; } ?> //ниже HTML код -> <form actoin="" method="post"> <input type="submit" name="update" value="Показать форму" /> </form> //Скрытая форма -> <form id="update_arch" name="update_arch" style="display: <?= $show ?>;"> <input type="text" name="qwer" value="HELLO" /> </form>
Аххах Все верно. Вы же полностью страницу обновляли Но все равно присмотритесь к решению, когда новые объекты именно догружаются в страницу, а не скрываются/показываются.