телефонная связь с кодовым блоком - PullRequest
4 голосов
/ 24 сентября 2011

Так что я лучше использую phonegap, но все еще пытаюсь полностью добавить codeigniter в качестве бэкэнда. Я смог загрузить в jquery что-то из контроллера моего CI в приложение Android PhoneGap, но, похоже, не могу правильно что-либо отправить на сервер. Вам нужен сервер отдыха для связи с КИ из телефонной щели? Я планировал использовать ajax post для информации в CI, но пока не смог заставить его работать. Я очень ценю, что кто-то может помочь мне преодолеть это препятствие. Спасибо

ссылка на относительный ответ

Контроллер:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {


    public function index()
    {
        //$this->load->view('welcome_message');
    $data['query']=$this->site_model->get_last_ten_articles();
$this->load->view('partial1',$data);

    }

    public function addarticle(){
    $headline=$this->input->post('headline');
    $article=$this->input->post('article');
    $this->site_model->insert_entry($headline,$article);    

    }
}

Javascript (на устройстве с пропуском телефона)

function add_article(){



$.ajax({
  type: 'POST',
  url: 'http://testlab.site40.net/droiddev/welcome/addarticle/',
  data: {"headline": "test headline","article": "test article"} 
  error: function(){alert('fail');},
  success: function(data){
   alert('article added');
  },
  dataType: "json"
});

}

1 Ответ

6 голосов
/ 11 октября 2011

Прежде всего, давайте запустим ваш пример, ваши данные поста - это json, а тип данных - json, но ваша реализация CI обращается к переменным поста.

Быстрое и грязное исправление - отправить строку uriв данных поста, таких как:

&headline=test%20headline&article=test%20article

Это можно сгенерировать из формы с помощью функции сериализации jquery:

var myData = $('#form-id').serialize();

Эти данные публикации будут установлены в переменной $ _POST при отправке, а затем будут доступны через функцию записи CI:

$this->input->post()

* Примечание: запомните, чтобы удалить параметр dataType в ajaxпопросите, чтобы это сработало.

Для более политически корректного способа решения этой проблемы вы захотите оставить свой javascript в одиночку (это все хорошо), но вам нужно настроить бэкэнд CI какСлужба RESTful, установленный по умолчанию контроллер и входные классы не справятся с этим.Вам нужно использовать что-то вроде реализации REST Фила Стерджона:

  • Для кода существует проект github ,
  • A запись в блоге (прочтите это в первую очередь - это хороший краткий учебник по REST-серверам для использования CI),
  • И учебник , о котором вы уже знаете.
  • О и видео о настройке.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...