Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с $_POST в ie

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Не работает передача значения по методу POST в IE
Clamb
Отправлено: 10 Ноября, 2010 - 03:21:09
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Добрый день (или ночь). Кто может помочь с такой проблеммой. Перерыл весь инет, поломал голову, но никак не могу добиться передачи значения через $_POST в internetExplorer! В Opera и Firefox все срабатывает как задумано. Короче делаю так, на форме находиться кнопка, в свойстве кнопки задано значение которое по идее должно передаваться через суперглобальный массив $_POST. Но вот увы, именно в ie этот код почему то не работает, уже упростил до нельзя! Кто нибудь сталкивался с подобным? может кто знает решение или хотя бы корень проблемы? Или я ошибся где (но сам убейте меня насмерть не вижу).
Привожу код.
Код номер раз (форма):
<form method="post" action="actn.php">
<button value="12" name=btn type=submit>
<img src="0.png" width=100% align=center title="" >
</button>
</form>

Ну и соответственно принимающий код (даже не код а попытка увидеть значение):
<?php
echo $_POST["btn"];
?>

Заранее благодарен за участие...
 
 Top
Zeboton
Отправлено: 10 Ноября, 2010 - 04:15:33
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2006  
Откуда: Москва


Помог: 1 раз(а)




Попробовал. Как я понял Fx (и другие нормальные браузеры) в качестве value для button считают атрибут value, в то время как IE считает значение то, что помещено в тэг button. Я бы посоветовал использовать JavaScript:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP // file actn.php
  3.  
  4. if ( isSet( $_POST['h'] ) ){
  5.     var_dump( $_POST );
  6. } else {
  7.     echo '
  8.        <form id="my_form" method="post" action="actn.php">
  9.        <input type="hidden" id="h" name="h" />
  10.        <button name="btn" onClick="clkOnButton(12)">
  11.            <img src="0.png" width=100% align=center title="" >
  12.        </button>
  13.        </form>
  14.  
  15.        <script>
  16.            function clkOnButton( val ){
  17.                docyment.getElementById( "h" ).value = val;
  18.                document.getElementById( "my_form" ).submit();
  19.            }
  20.        </script>
  21.    ';
  22. }
  23.  
  24. ?>
  25.  


В теории и исходя из моего опыта так всё должно работать во всех браузерах.


-----
And remember, respect is everything!
 
 Top
Варяг
Отправлено: 10 Ноября, 2010 - 04:20:53
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <input type=image src="pic1.png">

Можно через CSS

(Отредактировано автором: 10 Ноября, 2010 - 04:35:54)

 
 Top
Clamb
Отправлено: 10 Ноября, 2010 - 04:55:27
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Спасибо за помощь, но ява отпадает, ту идею что делаю хотелось бы реализовать на php. А насчет : <input type=image src="pic1.png"> я чего то не понял это о чем? Моя задача получить значение value в вызываемом скрипте для дальнейшей обработки. Изображения на кнопке не обязательно и оставлено просто как наполнение кнопки. Вопрос в том как по нажатию кнопки передать значение в вызываемый код.
 
 Top
Zeboton
Отправлено: 10 Ноября, 2010 - 05:44:38
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2006  
Откуда: Москва


Помог: 1 раз(а)




Clamb пишет:
Спасибо за помощь, но ява отпадает, ту идею что делаю хотелось бы реализовать на php.

Я дал код не Java, а JavaScript. JavaScript обрабатывает данные на стороне клиента, а PHP на стороне сервера. В моём варианте вы получите в PHP нужное значение ($_POST['h']), а что делать с ним дальше — решать вам.

Clamb пишет:
А насчет : <input type=image src="pic1.png"> я чего то не понял это о чем? Моя задача получить значение value в вызываемом скрипте для дальнейшей обработки. Изображения на кнопке не обязательно и оставлено просто как наполнение кнопки.

Здесь имелось в виду, что <button></button> можно заменить на <input />, в свойствах которого или через CSS можно прописать ссылку на картинку. В случае с <input /> проблем для передачи данных из формы, содержащей один элемент возникнуть не должно. Но всё равно может потребоваться JS для подписания формы.

Clamb пишет:
Вопрос в том как по нажатию кнопки передать значение в вызываемый код.

Вопросы в другом. У вас форма имеет один элемент или много? Они формируются динамически или прописаны статично?

Самый простой вариант (без использования JavaScript):
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="actn.php">
  3.     <input type="hidden" name="h" value="12" />
  4.     <input type="submit" value="Сохранить" />
  5. </form>
  6.  


или, если брать вашу кнопку:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form method="post" action="actn.php">
  3.     <input type="hidden" name="h" value="12" />
  4.     <button type="submit">
  5.         <img src="0.png" width="100%" align="center" title="" >
  6.     </button>
  7. </form>
  8.  


-----
And remember, respect is everything!
 
 Top
Варяг
Отправлено: 10 Ноября, 2010 - 10:53:35
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Clamb, да как сказал Zeboton я привел пример как можно картинку вставить вместо кнопки, чтобы передавалось значение нужно использовать CSS если нужна красивая кнопка и не нужен JavaScript.

CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="actn.php">
  2.     <input type="hidden" name="h" value="12" />
  3.     <input type="submit" class='button' name='add' value="Сохранить" />
  4. </form>
  5.  

теперь при отправке формы в $_POST['add'] будет значение Сохранить.
 
 Top
Clamb
Отправлено: 10 Ноября, 2010 - 11:04:11
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Во, теперь понял про инпут Улыбка Извиняюсь за тупость, голова уже туго соображает. Но этот вариант я пробовал. К сожалению кнопок много (пока статических) и с каждой должно уходить отдельное значение. А насчет явы и яваскрипта, я просто не в курсе этих тем. Сорри, но у меня свое отношение к яве и ее реализации... Я ищу вариант решения проблемы без использования дополнительных надстроек. Чистый html+css+php.
Но за попытку помощи - ОГРОМНОЕ СПАСИБО!
(Добавление)
Сделал так: каждая кнопка в отдельной форме, ну а в ней отдельное скрытое поле со значением. Работает во всех браузерах. Правда изящным решением эт не назовешь Недовольство, огорчение
Если у кого появятся какие мысли, буду рад. Спасибо за помощь.
 
 Top
OrmaJever Модератор
Отправлено: 10 Ноября, 2010 - 13:16:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Clamb пишет:
не могу добиться передачи значения через $_POST в internetExplorer! В Opera и Firefox все срабатывает как задумано.

InternetExplorer - это такая програма с помощью какой можно зайти на сайт opera.com и скачать себе браузер! Закатив глазки
Clamb пишет:
<button value="12" name=btn type=submit>

а вы не пробовали значения в кавычки ставить?
<button value="12" name="btn" type="submit">


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Clamb
Отправлено: 10 Ноября, 2010 - 13:36:13
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Про эксплорер - да я то только за, но писать приходится не только для умных людей.
А насчет кавычек: а вы сами не пробовали? с ними и без них (это было первое что проверял)... Так что перед советом лучше уж самому проверить, я так думаю
 
 Top
DlTA
Отправлено: 10 Ноября, 2010 - 15:00:55
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Clamb пишет:
Так что перед советом лучше уж самому проверить, я так думаю

странно у всех работает, а у Вас нет, как вариант возможно где то в скриптах опечатка
к примеру в названии метода или еще где нить
Вы смотрели в HTML страницы которую генерит Ваш сервак?, возможно чет там не так
 
 Top
OrmaJever Модератор
Отправлено: 10 Ноября, 2010 - 15:37:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Clamb пишет:
Про эксплорер - да я то только за, но писать приходится не только для умных людей.

Можно запретить заходить на сайт с ие. Так же как и при выключеном javascript.
Clamb пишет:
А насчет кавычек: а вы сами не пробовали?

Я не использую ие, но знаю что раньше в ие была такая проблема!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Clamb
Отправлено: 10 Ноября, 2010 - 16:36:50
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
Можно запретить заходить на сайт с ие. Так же как и при выключеном javascript.

Эх, если бы его всем запретить Улыбка .. Мечты мечты где ваша сладость... Улыбка
Но к сожалению не люблю "заборов", и сам их строить не собираюсь... Эт как религия, воспитано с детства Улыбка
 
 Top
Zeboton
Отправлено: 11 Ноября, 2010 - 07:05:24
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июль 2006  
Откуда: Москва


Помог: 1 раз(а)




Clamb, во-первых, нужно подтянуть мат. часть.: Java, JavaScript. Это абсолютно разные языки, служащие разным целям.
Во-вторых, JavaScript используют практически все сайты (99,9%) на которых есть какой-либо полезный функционал, особенно всеми так сейчас любимый AJAX.
В-третьих, решение с hidden, это самое верное, надёжное и правильное с точки зрения стандартов. А моё решении с JS предназначено для более навороченных форм.

P.S.
Советую изучить JavaScript, так как 100% пригодиться, а потом jQuery.


-----
And remember, respect is everything!
 
 Top
JustUserR
Отправлено: 11 Ноября, 2010 - 09:21:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Clamb В общем случае приведенный вами исходный код формы расположенной на клиентской HTML-странице не обеспечивает ее правильную передачу - дело в том что информационные поля для проведения ввода пользовательских данных обязаны иметь фомат input - в то время как реализация использования остальных тегов производится мануально посредством обеспечения требуемый операций в клиентском JS-скрипте
Браузер Internet explorer в вашем случае обеспечивает единственное коррекнтое и непротиворечивое проведение обаботки формы - в то время как другие используемых обозреватели осуществляют собственную модификацию HTML-кода что в общем случае может приводить к дальнейшим ошибкам - в частности обеспечиваемых за счет передачи нецелевых полей формы
Clamb пишет:
Про эксплорер - да я то только за, но писать приходится не только для умных людей.
Интересным фактом является осуществление нерациональной и нелинейной критики браузера Internet explorer осуществляемой без реального понимания исходной причины возникновения рассматриваемой проблемы - поскольку в одних случаях предметом критики является недостаток специфичиских функций которые в действительноси оказываются доступными в библиотеке MSDN - в то время как в других вариантах таких как предоставленных в текущей теме предметом критики является написание заранее некорректного HTML-кода и проведения браузером IE его корректного исполнения
Тем не менее при рассмотрении реальных и конкретных аспектов решения вопросов - оказывается что возникновение целевых проблем осуществляется именно в браузере Firefox - *объективная* проверка чего возможно при просмотрении ветвей дискуссии раздела Программирования для клиентской стороны


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Clamb
Отправлено: 11 Ноября, 2010 - 10:50:38
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




JustUserR пишет:
В общем случае приведенный вами исходный код формы расположенной на клиентской HTML-странице не обеспечивает ее правильную передачу - дело в том что информационные поля для проведения ввода пользовательских данных обязаны иметь фомат input - в то время как реализация использования остальных тегов производится мануально посредством обеспечения требуемый операций в клиентском JS-скрипте
Браузер Internet explorer в вашем случае обеспечивает единственное коррекнтое и непротиворечивое проведение обаботки формы - в то время как другие используемых обозреватели осуществляют собственную модификацию HTML-кода что в общем случае может приводить к дальнейшим ошибкам - в частности обеспечиваемых за счет передачи нецелевых полей формы
Интересным фактом является осуществление нерациональной и нелинейной критики браузера Internet explorer осуществляемой без реального понимания исходной причины возникновения рассматриваемой проблемы - поскольку в одних случаях предметом критики является недостаток специфичиских функций которые в действительноси оказываются доступными в библиотеке MSDN - в то время как в других вариантах таких как предоставленных в текущей теме предметом критики является написание заранее некорректного HTML-кода и проведения браузером IE его корректного исполнения
Тем не менее при рассмотрении реальных и конкретных аспектов решения вопросов - оказывается что возникновение целевых проблем осуществляется именно в браузере Firefox - *объективная* проверка чего возможно при просмотрении ветвей дискуссии раздела Программирования для клиентской стороны

Некорректного? Ну даж не знаю уж тогда чему верить. Привожу отрывок из описания параметров тега Button: "...

Тег BUTTON создает на веб-странице кнопки и по своему действию напоминает результат, получаемый с помощью тега INPUT (с параметром type=button | reset | submit). В отличие от этого тега, BUTTON предлагает расширенные возможности по созданию кнопок. Например, на подобной кнопке можно размещать любые элементы HTML, в том числе изображения. Используя стили можно определить вид кнопки путем изменения шрифта, цвета фона, размеров и других параметров.
Параметр VALUE
Описание
Определяет значение кнопки, которое будет отправлено на сервер. На сервер отправляется пара имя/значение, где имя задается параметром name тега BUTTON, а значение — параметром value. Значение может, как совпадать с текстом на кнопке, так быть и самостоятельным. Также параметр value применяется для доступа к данным через скрипты.

Синтаксис
<button value=значение>...</button>
..."

Я так понимаю это "некорректный" параметр? Улыбка
Наверное для того чтобы критика была "рациональной" и "линейной" нужен отдельный справочник по "HTML в IE" и отдельно справочник "HTML"...
Указание на ошибки - это замечательно, потому как позволяет двигаться вперед. Конечно если это "линейно" Улыбка
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB