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


Автор: DeamonShan 24.7.2009, 08:24
Код

    function getMsg(){
        var id_to=$("#agent input[name='id_to']").val();
        var msgId=$("#agent input[name='lastmsgId']").val();


        var dataReq = {id_to: id_to, lastmsgId: msgId};


        if(id_to!=undefined){
            $.ajax({
            cache: false,
            type: "POST",
            scriptCharset: "utf-8",
            contentType: "application/xml; charset=utf-8",
            url: "agent/getmsg.php",
            data: dataReq,
            dataType: "xml",
            success:function(xml){
                        $(xml).find("note").each(
                            function(){
                                $("#agentMsgWindow").append($(this).find("msg").text()+"<br>");
                                $("#agent input[name='id_to']").val($(this).find("idto").text());
                                $("#agent input[name='lastmsgId']").val($(this).find("msgid").text());
                            }
                        );
                    }
            });
        }
    }


Помогите пож разобраться в функции, она почему-то не посылает данные id_to и lastmsgId (6 строка)

Автор: ksnk 24.7.2009, 09:11
Цитата(DeamonShan @  24.7.2009,  08:24 Найти цитируемый пост)
contentType: "application/xml; charset=utf-8",

а такое бывает для посылаемых данных?  

Если хочется получить xml, нужно указывать dataType:'xml' в параметрах...

Добавлено через 1 минуту и 35 секунд
FireBug установлен? Реквест посылаемый удалось посмотреть? Можно просто вручную данные закодировать, если у jQuery туго пошло... smile

Автор: DeamonShan 24.7.2009, 11:33
дататип xml установлен в строке 17....

контент тип юникод для входящего контента... реквест получаю, скрипт возвращает xml и показывает его в <div id=agentMsgWindow>


Проблема в другом оказывается.  Почему-то посылаемые параметры можно посылать только GET-ом... поменял type: "GET" заработало... на  оффсайте тоже написано что только GET-ом.. я пропустил этот момент...

Автор: IDVsbruck 25.7.2009, 00:52
Что за фигня? Все время пользуюсь только POST и посылаю столько параметров, сколько мне надо.

Автор: DeamonShan 27.7.2009, 02:17
IDVsbruck, и как посылаешь? у меня не посылается(((((((( теперь ни постом ни гетом........ ваще бред какой-то
Код

    function getMsg(){
        var id_to=$("#agent input[name='id_to']").val();
        var msgId=$("#agent input[name='lastmsgId']").val();
        var dataReq = {id_to: id_to, lastmsgId: msgId};
        var color= "blue";
        if(id_to!=undefined){
            $.ajax({
            cache: false,
            type: "GET",
            scriptCharset: "utf-8",
            contentType: "application/xml; charset=utf-8",
            url: "agent/getmsg.php",
            data: dataReq,
            dataType: "xml",
            success:function(xml){
                        $(xml).find("note").each(
                            function(){
                                var statusRate = $(this).find("statusto").text();
                                if(statusRate == "1") color="red";
                                if($(this).find("msg").text())$("#agentMsgWindow").append("<b style=\"color:" + color + "\">"+ $(this).find("nicknameto").text() +"</b>: "+$(this).find("msg").text()+"<br>");
                                $("#agentMsgWindow").scrollTop(65353);
                                $("#agent textarea[name='msg']").focus();
                                $("#agent input[name='id_to']").val($(this).find("idto").text());
                                $("#agent input[name='lastmsgId']").val($(this).find("msgid").text());
                                var redirectId = $(this).find("codeId").text();
                                if(redirectId){
                                    redirectIframe(redirectId);
                                }
                            }
                        );
                    }
            });
        }
    }



Автор: Photon 2.8.2009, 04:31
DeamonShan, читаем документацию и понимаем, что параметр contentType указывает тип посылаемого на сервер контента..

Надо так:
Код

$.ajax({
   cache: false,
   type: "POST",
   scriptCharset: "utf-8",
   url: "agent/getmsg.php",
   data: {
       id_to: id_to, 
       lastmsgId: msgId
   },
   dataType: "xml",
   success:function(xml){}
});

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