json - 使用 CodeIgniter 提交 AngularJS 表单

标签 json codeigniter angularjs

首先让我说我是 AngularJS 和 CodeIgniter 的新手。 尝试创建单页应用程序。在中心它显示新闻报道。旁边是提交新故事的表格。我已经到了故事可以从数据库中正常显示的地步。但是当我尝试从旁边的表单创建新故事时,它会在数据库中输入 0。我假设我在模型中的功能有问题。这可能与没有正确编码信息以在 MVC 之间传递一样基本。

索引.php

<div class="span2" ng-controller="NewStoryCtrl">
  <h4>New Story</h4>
  <form name="newStory">
      <label for="title">Title: </label>
      <input type="text" name ="title" ng-model="news.title" required>
      <label for="text">Text: </label>
      <textarea type="text" name="text" ng-model="news.text"required></textarea>
      <button ng-click="createNews()">Submit</button>
</form>

Controller .js

function NewStoryCtrl($scope, $http) {
$scope.news = {title:$scope.title, text:$scope.text};
$scope.createNews = function(){
    $http.post('/ci/index.php/news/create/',$scope.news);
};}

news.php( Controller )

public function create() {
    $this->news_model->set_news();
}

news_model.php(模型)

public function set_news() {
$this->load->helper('url');

$slug = url_title($this->input->post('title'), 'dash', TRUE);

$data = array(
    'title' => $this->input->post('title'),
    'slug' => $slug,
    'time' => time(),
    'text' => $this->input->post('text')
);

return $this->db->insert('news', $data);
}

模型中的内容是我最初的 CI 新闻教程剩下的。这就是为什么我认为错误在这里。 将信息从 controllers.js 传递到模型的最佳方式是什么?

最佳答案

不出所料,我的问题是没有获得正确类型的数据。 Controller 需要一个变量,但在 Angular Controller 中我将它作为 JSON 传递。我从来没有经历过解码。

news.php( Controller )

public function create() {
   $data = json_decode(file_get_contents('php://input'), TRUE);
   $this->news_model->set_news($data);
}

然后在模型中,我只需要将它作为参数传递给 set_news()。我最终更改了一些变量名称,只是为了个人澄清。

*news_model.php*

public function set_news($data) {
    $this->load->helper('url');
    $slug = url_title($data['title'], 'dash', TRUE);

    $retval = array(
        'title' => $data['title'],
        'slug' => $slug,
        'time' => time(),
        'text' => $data['text']
    );

    return $this->db->insert('news', $retval);
}

关于json - 使用 CodeIgniter 提交 AngularJS 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372346/

相关文章:

java - 日期比 json 响应中的实际日期少一位

javascript - 使用 AJAX 和 CodeIgniter 创建实时搜索

php - PHP根据时间获取正确的数据库记录

javascript - 通过键盘的 slider 动画不起作用(javascript 和 CSS)

javascript - 带有 drilledDown 的 HighMaps

javascript - 使用 ng-repeat 迭代 AngularJS 中的数组

javascript - 为什么我的 json_encode 没有在 PHP 中给出正确的值

c# - 使用 Cookie 或其他方法保护 WFC/JSON 上的数据 session

android - 使用MPAndroidChart单独绘制LineChart?

php - 通过 PHP 使用 HTTP POST 发送 XML 数据