Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > не выводится в нужном div-е запрос


Автор: kurkul 3.12.2009, 16:12
День добрый, есть загвоздка)
Есть уже готовая страница, вот ее код.
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
        <link href="/template/css.css" rel="stylesheet" type="text/css">
        <script type="text/javascript" src="js/menuleft.js"></script>
        <script type="text/javascript" src="js/query.js"></script>
 
    </head>
    <body>
        <table width="100%" border="1px">
            <tr>
                <td colspan="2" width="100px" height="150px">
                    <div id="head">
                     хедер</div>
                </td>
 
            </tr>
            <tr>
                <td align="left" valign="top" width="150px">
                    <div id="leftmenu">Основное меню</div>
                </td>
                <td align="left" valign="top">
                    <div id="body">
<form action="" method="post" onsubmit="menu_articles(this.value)">
    <input type="submit" name="ddd" value="jjj">
</form> 
                    </div>
                </td>
            </tr>
            <tr>
                <td id="footer" colspan="3">
футер                </td>
 
            </tr>
        </table>
    </body>
</html>



Вот код js/query.js,
который отправляет данные на серв., получает обработанную стр. и выводит в div

Код

var req = Create();
 
function ge(id)
{
    return document.getElementById(id);
}
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
 
function Request(query)
{
req.open('post', 'index2.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}
 
function Refresh(id)
{
    if( req.readyState == 4 )
    ge(div).innerHTML = req.responseText;
    else
    ge(div).innerHTML = '<img src="watch.gif" />';
}
 
function menu_articles(query)
{
var query
    div='head';
    query='menu_articles='+encodeURIComponent(query);
//alert(query);
Request(query);
}


Вот уже упрощенный до не могу сделал приемник index2.php 

Код

<?php
echo 'Абра кадабра';
?>



Проблема вот в чем...
Когда жму на сабмит, то форма отправляется и не выводится в нужном окне.
Выводится только тогда, когда в

Код

function menu_articles(query)
{
var query
    div='head';
    query='menu_articles='+encodeURIComponent(query);
//alert(query);
Request(query);
}


Ставлю div='body';

Ни на какие больше реагировать не хочет (( выводит только в одном месте, и ни в каком другом.

Автор: IDVsbruck 3.12.2009, 17:42
Ничего умнее не придумал, кроме как называть свои функции зарезервированными именами Request, Refresh, Create?
Увидел и даже смотреть код не стал, так как поведение твоего кода крайне непредсказуемо как в принципе, так и в каждом конкретном браузере.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)