Miller Posted June 18, 2007 Report Share Posted June 18, 2007 Возникла проблема - не передается значение из формы. Глюк присутствует только в Лисе. Решение найти не получается.Дана форма:<form action="?action=add_cons" method="post" enctype="multipart/form-data"><select name="dis_id" onchange="request(this.value)"><option value="17">test1</option><option value="16">test2</option></select><div id="list"></div></form>в див посредствам аякса подгружается вот это:<select name="diag_id"><option value="1">test123</option></select>все нормально отображается, но php-скрипт не получает$_POST[diag_id]В этой-же форме есть инпут не-аяксовый, он нормально передается!В IE 6, 7 все нормально.В чем проблема? Link to comment Share on other sites More sharing options...
0 yopopt Posted June 18, 2007 Report Share Posted June 18, 2007 в див посредствам аякса подгружается вот это:<select name="diag_id"><option value="1">test123</option></select>все нормально отображается, но php-скрипт не получаетКак оно подгружается? Раз вы создали тему в разделе JavaScript, значит вы считаете, что проблема в н?м. Однако не приводите ни одного скрипта...И зачем вам обратные слэши в name="diag_id"? ie их может игнорить. Link to comment Share on other sites More sharing options...
0 Miller Posted June 18, 2007 Author Report Share Posted June 18, 2007 Бэкслеши, это остатки php-кода который я убрал для наглядонсти.Да, это проблема javascript - потому что если не использовать ajax, все работает нормально.Почему данные, которые были получены через ajax в лисе не передаются методом post? Link to comment Share on other sites More sharing options...
0 yopopt Posted June 18, 2007 Report Share Posted June 18, 2007 Вс? переда?тся. Покажите скрипт вашего "AJAX"! Link to comment Share on other sites More sharing options...
0 Miller Posted June 18, 2007 Author Report Share Posted June 18, 2007 var req;var html;function loadXMLDoc(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; url = url + '&hash=' + Math.random(); req.open("GET", url, true); req.send(); } }}function processReqChange() { if (req.readyState == 4) { // only if "OK" if (req.status == 200) { document.getElementById(html).innerHTML = req.responseText; } else { alert("Не удалось получить данные:n" + req.statusText); } } }function request(id){ loadXMLDoc('select.php?action=add_diag&id='+id); html = 'diag_select';}get запрос проходит нормально, и возвращает код который я постил выше. Link to comment Share on other sites More sharing options...
0 yopopt Posted June 18, 2007 Report Share Posted June 18, 2007 У Вас скрипт переда?т данные методом GET, естественно переменная $_POST[diag_id] будет пустая. Посмотрите передаются ли данные в переменную $_GET[diag_id]. Link to comment Share on other sites More sharing options...
0 PacMan Posted June 18, 2007 Report Share Posted June 18, 2007 Ищите в $_REQUEST["diag_id"]Вы вроде как гетом отправляете форму.... Link to comment Share on other sites More sharing options...
0 Miller Posted June 18, 2007 Author Report Share Posted June 18, 2007 $_REQUEST["diag_id"] работает опять же только в ie. менял в яваскрипте метод с ГЕТ на ПОСТ, не помогло.$_GET[diag_id] не передает. но ведь req.open("GET", url, true); это тип данных которые передаются скрипту... скрипту передается одна переменная, методом get. потом скрипт и генерит селект. :| блин..только что проверил - в опере 8.51 такая-же история. Link to comment Share on other sites More sharing options...
0 yopopt Posted June 18, 2007 Report Share Posted June 18, 2007 $_REQUEST["diag_id"] работает опять же только в ie.Это переменная php и работает она не в браузере, а на сервере... И проверять е? надо там.Я думал что Вам надо передать данные методом POST скрипту php, так? Не понятно что получается, а что нет... Link to comment Share on other sites More sharing options...
0 Miller Posted June 18, 2007 Author Report Share Posted June 18, 2007 хм, да туплю ))нет, Вы немного неправильно поняли.Есть форма, при выборе из selectа одного значения, подгружается с помощью аякса еще один select... но данные из того селекта, что подгружается, скрипт по которому посылает форма (form action) получает только если используется IE. Link to comment Share on other sites More sharing options...
0 PacMan Posted June 19, 2007 Report Share Posted June 19, 2007 Установите плугин firebug для ФФ. Там можно посмотреть и заголовки и тело ответа и про ошибки он вам подробно расскажет. Link to comment Share on other sites More sharing options...
0 Miller Posted June 19, 2007 Author Report Share Posted June 19, 2007 Дык уже стоит и ошибок не пишет думал может NoScript режет как-нибудь, думая что это xss, но порверили на лисе без него - тоже самое. Link to comment Share on other sites More sharing options...
0 PacMan Posted June 19, 2007 Report Share Posted June 19, 2007 Ссылки на эти чудеса нет? Посмотреть бы. Паходу ошибка в обработчике полученных данных. Firebug может не показывать ошибки в событиях. Link to comment Share on other sites More sharing options...
0 Tokolist Posted June 19, 2007 Report Share Posted June 19, 2007 думал может NoScript режет как-нибудь, думая что это xssс XMLHttpRequest такое не пройдет, ибо ограничения на внешние домены... так что это здесь ни при чем в любом случае. Link to comment Share on other sites More sharing options...
0 Юзер Posted July 23, 2007 Report Share Posted July 23, 2007 У меня тоже подобная ситуация. Причем, проявляет себя довольно странно:в ИЕ все работает хорошо, за исключением того, что иногда вылетаетif (req.status == 200) { if(req.responseText=="")Т.е. почему-то серверный скрипт отдает пустое значение. Хотя не должен.А вот в Опере - постоянно пустые значения. Лиса - работает нормально.Но у меня ситуация чуток посложнее: на странице есть несколько мест, в которых идет обращение к нескольким серверным скриптам... Может и правда стоит попробовать JsHttpRequest()? Link to comment Share on other sites More sharing options...
Question
Miller
Возникла проблема - не передается значение из формы. Глюк присутствует только в Лисе.
Решение найти не получается.
Дана форма:
в див посредствам аякса подгружается вот это:
все нормально отображается, но php-скрипт не получает
В этой-же форме есть инпут не-аяксовый, он нормально передается!
В IE 6, 7 все нормально.
В чем проблема?
Link to comment
Share on other sites
14 answers to this question
Recommended Posts