Как получить доступ к методу codeigniter внутри контроллера с помощью ajax

Я создал веб-сайт codeigniter, и теперь мне нужно сделать приложение. Я хочу вызвать некоторые из методов контроллера, используя ajax. Вот мой код:

$(document).on('pagebeforeshow','#page2',
function(){
            $('#submit').click(function() 
            {
                var name = $("#username").val();
                var surname = $("#usersurname").val();

                alert(name + " " + surname);

                $.post(
                    "http://localhost:8080/bookbay/index.php/Home/test", 
                    {'name':name,'surname':surname},
                    function(data)
                    {
                        alert(data.name + " " + data.surname);
                    },
                    "json");
            });         
          });

Ajax все работает до поста. Затем просто отправляет меня обратно на страницу приложения по умолчанию и не дает мне ничего от контоллера. Я не знаю, почему это происходит.

Вот код для тестовой функции:

    class Home extends CI_Controller
{
        function test()
        {
            $name = $this->input->post('name');
            $surname = $this->input->post('surname');
            $array = array('name' => "*".$name."*", 'surname'=> "?".$surname."?");
            echo json_encode($array);
        }
0
nl ja de
Похоже, ваша форма отправляется до того, как она попадет на ваш код отправки AJAX. Попробуйте добавить event.preventDefault (); в начало вашей функции щелчка, а также добавить в event в качестве параметра. $ ('# submit'). click (function (event) {), чтобы предотвратить отправку формы через http-сообщение.
добавлено автор Jeemusu, источник
можете ли вы опубликовать код тестовой функции?
добавлено автор uttam, источник

1 ответы

Измените свой пост

$.post( 
    "<?php echo site_url('home/test')?>", 
    {'name':name,'surname':surname},
    function(data){alert(data.name + " " + data.surname);},
    "json"
);
0
добавлено
Возможно, раньше я был немного расплывчатым. Я использую PhoneGap, чтобы сделать приложение так, что ajax находится в приложении Android, а затем вызывает метод Contoller, который находится на моем локальном хосте. Я устал от кода, который вы предлагали, и ничего не возвращается от контроллера, который предполагает, что мне даже удается получить доступ к контроллеру
добавлено автор user481610, источник
@ user1638809 вам нужен веб-сервер, а не локальный сервер для работы
добавлено автор Muhammad Raheel, источник
@ user1638809 - тогда это не то, как задать вопрос. и ваш путь неправильный. вам нужно работать с restuful веб-сервисом для этого
добавлено автор mamdouh alramadan, источник
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda