Jump to content
  • 0

В Firefox AJAX-форма не передает значение!


Miller
 Share

Question

Возникла проблема - не передается значение из формы. Глюк присутствует только в Лисе.

Решение найти не получается.

Дана форма:

<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

14 answers to this question

Recommended Posts

  • 0
в див посредствам аякса подгружается вот это:

<select name="diag_id">
<option value="1">test123</option>
</select>

все нормально отображается, но php-скрипт не получает

Как оно подгружается? Раз вы создали тему в разделе JavaScript, значит вы считаете, что проблема в н?м. Однако не приводите ни одного скрипта...

И зачем вам обратные слэши в name="diag_id"? ie их может игнорить.

Link to comment
Share on other sites

  • 0

Бэкслеши, это остатки php-кода который я убрал для наглядонсти.

Да, это проблема javascript - потому что если не использовать ajax, все работает нормально.

Почему данные, которые были получены через ajax в лисе не передаются методом post?

Link to comment
Share on other sites

  • 0

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

  • 0

$_REQUEST["diag_id"] работает опять же только в ie. менял в яваскрипте метод с ГЕТ на ПОСТ, не помогло.

$_GET[diag_id] не передает. но ведь req.open("GET", url, true); это тип данных которые передаются скрипту... скрипту передается одна переменная, методом get. потом скрипт и генерит селект. :| блин..

только что проверил - в опере 8.51 такая-же история.

Link to comment
Share on other sites

  • 0
$_REQUEST["diag_id"] работает опять же только в ie.

:)

Это переменная php и работает она не в браузере, а на сервере... И проверять е? надо там.

Я думал что Вам надо передать данные методом POST скрипту php, так? Не понятно что получается, а что нет...

Link to comment
Share on other sites

  • 0

хм, да туплю :)))

нет, Вы немного неправильно поняли.

Есть форма, при выборе из selectа одного значения, подгружается с помощью аякса еще один select... но данные из того селекта, что подгружается, скрипт по которому посылает форма (form action) получает только если используется IE.

Link to comment
Share on other sites

  • 0

У меня тоже подобная ситуация. Причем, проявляет себя довольно странно:

в ИЕ все работает хорошо, за исключением того, что иногда вылетает

if (req.status == 200)

{

if(req.responseText=="")

Т.е. почему-то серверный скрипт отдает пустое значение. Хотя не должен.

А вот в Опере - постоянно пустые значения.

Лиса - работает нормально.

Но у меня ситуация чуток посложнее: на странице есть несколько мест, в которых идет обращение к нескольким серверным скриптам...

Может и правда стоит попробовать JsHttpRequest()?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy