Отправлять данные Ajax в функцию контроллера? - PullRequest
1 голос
/ 07 июля 2011

В моем приложении PHP / jQuery у меня есть файл javascript, в котором я могу вызвать внешний файл PHP (post_data.php), например:

$.ajax({
            type: "POST",
            data: "some data",
            url: "post_data.php",

Теперь, вместо вызова php-файла, я хотел бы вызвать функцию контроллера CodeIgniter Data/post_data, так как я могу вызвать эту функцию вместо post_data.php?

Файл javascript, в который я хотел бы позвонить, находится:

root/js/test.js

пока функция находится здесь:

root/application/controllers/data/post_data

Ответы [ 3 ]

3 голосов
/ 07 июля 2011

У ajax должен быть полный URL:

$.ajax({
        type: "POST",
        data: "some data",
        url: "http://www.yourdomain.com/urpath/post_data"});

Причина в том, что файл Javascript, который вызывает Ajax, не знает о расположении сервера .php-файла. Итак, используя абсолютный путь, вы убедитесь, что ваш звонок будет выполнен. Кроме того, чтобы проверить его перед использованием файла Javascript, скопируйте и вставьте URL в ваш браузер. Если ошибка 404 не отображается, значит у вас правильный путь.

0 голосов
/ 09 июля 2011

Вы можете использовать функцию $ .post () JQuery, она более проста и оптимизирована для POST-запросов.Также для маршрутизации вы можете установить только контроллер и метод.Это достаточно.

$.post("admin/newphone", {
        phone: $('input[name="phone"]').val()
},

И ссылка на документацию JQuery http://docs.jquery.com/Post

0 голосов
/ 09 июля 2011

Чтобы добавить ответ Doaks, вы также можете сделать это следующим образом

$.ajax({
    url: "<?php echo site_url('data/post_data'); ?>",
    type: "POST",
    data: data,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...