Что не так с этим jquery POST

Я пытаюсь создать скрипт для публикации на моем контроллере codeigniter, вот что я пробовал:

$(document).ready(function(){
   $('input.atualizar').click(function(){
      var observacoes = $('textarea#textarea_observacoes').val();
      var pac_id = $('input#member_id').val();
      var tipo = 'observacoes';

        $.post("pacientes/update", { "observacoes" : observacoes, "pac_id" : pac_id, "tipo" : tipo },
        function(data){
            alert(data.result);
            alert('aaaa');
        }, "json");
   }); 

});

пока он ничего не делает, ничего не предупреждает из предупреждения (data.result), не публикует, ничего в отладчике, это моя функция php

    function update(){
        $ar = array(
            'observacoes' => $this->input->post('observacoes'),
            'pac_id' => $this->input->post('pac_id'),
            'tipo' => $this->input->post('tipo')
        );
        echo json_encode($ar);
    }

person Community    schedule 08.02.2012    source источник
comment
Вам нужен дополнительный }); в вашем коде. Опубликованная вами версия вызовет синтаксическую ошибку и может быть причиной того, что ничего не происходит.   -  person bfavaretto    schedule 09.02.2012
comment
Ваш файл действительно называется update без расширения?   -  person Nabab    schedule 09.02.2012
comment
@bfavaretto Мне любопытно, где? Я сканировал этот код, и, похоже, его не было})   -  person Mathieu Dumoulin    schedule 09.02.2012
comment
Это контроллер codeigniter, поэтому без расширения   -  person    schedule 09.02.2012
comment
@MathieuDumoulin, извините, вы правы, меня смутил формат кода   -  person bfavaretto    schedule 09.02.2012
comment
@AndréAbadesso, что происходит, когда вы получаете доступ к одному и тому же URL-адресу непосредственно из браузера, ничего не публикуя? Привет из Бразилии!   -  person bfavaretto    schedule 09.02.2012
comment
Привет @bfavaretto, когда я получаю доступ к URL-адресу (pacientes/update), ничего не публикуя, я получаю пустой ответ json: {observacoes:false,pac_id:false,tipo:false}   -  person    schedule 09.02.2012
comment
@AndréAbadesso, возможно, вы получаете скрытую ошибку при попытке доступа к несуществующему data.result (в вашем объекте JSON нет свойства result).   -  person bfavaretto    schedule 09.02.2012
comment
Я только что попытался предупредить data.observacao и data.pac_id, и это не сработало, это так странно   -  person    schedule 09.02.2012
comment
Вы используете Firebug? Вы видите какие-либо ошибки в консоли? Вы видите запуск ajax-запроса (на консоли)?   -  person bfavaretto    schedule 09.02.2012
comment
Я использовал консоль google chrome, только что попробовал firebug, он публикуется правильно, но получает pai/index.php/pacientes/html (текущий pai/index.php/pacientes/form   -  person    schedule 09.02.2012


Ответы (3)


попробуйте это, чтобы увидеть исключение:

    <div class="fail" style="display: none;z-index:999">
        <div>
            Error....
            <div id="errorTextMsg">
            </div>
        </div>
    </div> 
<script>
   $(".fail").ajaxError(function (event, xhr, status, error) {
                $("#errorTextMsg").html(xhr.responseText);
                $(this).show();
            })

});
</script>
person Yorgo    schedule 08.02.2012
comment
Он выдал ошибку.... и внутри div показал предыдущую часть сайта, лол - person ; 09.02.2012
comment
Привет! Это все объясняет! Я думаю, что Codeigniter выводит макет вместе с тем, что вы повторяете. Это недопустимый JSON, как и ожидал ваш обратный вызов. - person bfavaretto; 09.02.2012
comment
Да, я только что понял это, когда вы попросили меня использовать firebug, и я увидел вывод ../ html URL, я загружаю представление из формы поиска вместо перенаправления на новый контроллер или функцию! спасибо за вашу помощь, кажется, я исправил это !! - person ; 09.02.2012

Предупреждает ли «аааа»?

data.result не похоже, что он установлен в вашем JSON. Вместо этого попробуйте предупредить data.observacoes.

person John Fable    schedule 08.02.2012
comment
aaaa не предупреждает, и я только что попробовал data.observacoes, и это не сработало - person ; 09.02.2012

Я думаю, что это испанский, не уверен, но если это так, вы опечатались:

input.atualizar

Потому что я уверен, что это должно быть

input.actualizar

No?

person Mathieu Dumoulin    schedule 08.02.2012
comment
Это португальский язык, он похож на бразильский португальский (в Португалии используется дополнительная буква «с», как в испанском языке). - person bfavaretto; 09.02.2012
comment
Если ваш ответ неверен (может быть, он не опечатался), но мне нравится ваш ответ. Откуда ты знаешь испанский ? - person The Alpha; 09.02.2012
comment
Я не говорю по-испански, слово Atualizar выглядело как обновление в моем сознании, я пошел в Google Translate после публикации, просто чтобы подтвердить, и да, это должен быть Actualizar, если вы хотите, чтобы оно соответствовало обновлению на английском языке - person Mathieu Dumoulin; 09.02.2012
comment
На бразильском португальском это atualizar - person ; 09.02.2012
comment
Atualizar действительно означает обновление. Но это правильно пишется на бразильском португальском языке. Google может ошибаться или думает, что это испанский язык. - person bfavaretto; 09.02.2012