Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Это баг firefoxa ? JShttprequest ? JavaScript-a или моего ДНК ? (Merten)
Author Message
Merten
Заглянувший



Joined: 21 Feb 2009
Posts: 3
Карма: 0
   поощрить/наказать


PostPosted: Sat Feb 21, 2009 6:27 pm (написано за 5 минут 38 секунд)
   Post subject: Это баг firefoxa ? JShttprequest ? JavaScript-a или моего ДНК ?
Reply with quote

Дело в следующем.
Я JSHTTPRequest-ом обращаюсь к бэкенду беру массив данных и вывожу на фронтенде новые поля в форму (input type text). Поля замечательно показываются, но при нажатии submit - в $GLOBALS, $_POST, $_REQUEST отображаются только в IE... в Firefoxe этих полей как бы не было...
Ниже соурс.



<form method="post" action="index.php" id="add" name="add">
<script src="/lib/JsHttpRequest/JsHttpRequest.js" type="text/javascript" language="JavaScript"></script>
<script type="text/javascript" language="JavaScript">

function htmlspecialchars(text)
{
   var chars = Array("&", "<", ">", '"', "'");
   var replacements = Array("&amp;", "&lt;", "&gt;", "&quot;", "'");
   for (var i=0; i<chars.length; i++)
   {
       var re = new RegExp(chars[i], "gi");
       if(re.test(text))
       {
           text = text.replace(re, replacements[i]);
       }
   }
   return text;
}

function add(name,value) {
   
     var element = document.createElement("input");
   
     element.setAttribute("type", "text");
     element.setAttribute("value", value);
     element.setAttribute("name", name);
   
     var foo = document.getElementById("fooBar");
    foo.appendChild(element);
}

function doload(value) {
    var req = new JsHttpRequest();
    req.onreadystatechange = function()
    {
    if (req.readyState == 4)
     {
     var i; var m; var z;
     for (i=0;i<req.responseJS.length;i++)
            {
                m = 'path'+i;
                z = htmlspecialchars(req.responseJS[i]["path"]);
                add(m,z);
                m = 'video'+i;
                z = htmlspecialchars(req.responseJS[i]["video"]);
                add(m,z);
                m = 'audio'+i;
                z = htmlspecialchars(req.responseJS[i]["audio"]);
                add(m,z);
                m = 'size'+i;
                z = htmlspecialchars(req.responseJS[i]["size"]);
                add(m,z);

            }
     }
    }
   req.open(null, 'backend.php', true);
   req.send({server_id: value});
}
</script>

<a href="#" onclick="javascript: doload('1')">SERVER_1</a> | <a href="#" onclick="javascript: doload('2')">SERVER_2</a>
<div id="show_files" colspan="2" align=left>

<span id="fooBar">&nbsp;</span>

</div>
<input class="bt_input" type="submit" value="Add"/>
</form>
Back to top
View user's profile Send private message
Ya
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Mar 03, 2009 12:50 pm (спустя 9 дней 18 часов 22 минуты; написано за 2 минуты 8 секунд)
   Post subject:
Reply with quote

Аналогичная проблема - в файрфоксе переданыне параметры не видны (в IE всё работатет). Никаких фреймворков вообще не использую - необходимо создавать копию объекта селект, делаю с помощью вот такой функции
Code (java): скопировать код в буфер обмена
var id = 0;
function addField(obj_id,group_name,type){
    id++;
        var obj=document.createElement(type);
        var html="<select name=\"expert_id_[]"+"\" style=\"width:355px\" id=\"expert_id_"+id+"\">"+document.getElementById(obj_id).cloneNode(true).innerHTML+"</select>";
        obj.innerHTML=html;
        document.getElementById(group_name).appendChild(obj);
    return false;
}
Визуально всё правильно и работает. Но параметры передаются только в IE. Уже не знаю что делать ;(
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML