3

まず申し訳ありませんが、私は本当に大きな初心者です。

本当に解決できない問題に遭遇しました。Facebookのような壁を作っています。投稿が送信された後、結果をdivに追加したいのですが、完全に失われました。

問題は、完全に送信されますが、結果が表示されないことです。

これが私のコードです

html

<?php foreach($stream_posts as $sp): ?>
    <div id="sp_<?php echo $sp->sid; ?>" class="row stream-posts">
        <div class="span1 stream-thumb">
            <ul class="thumbnails">
              <li>
                <a href="#" class="thumbnail">
                  <img src="http://placehold.it/60x60" alt="">
                </a>
              </li>
            </ul>
        </div>  
        <div class="span5 stream-content">
            <a href="#" class="author"><?php echo $sp->first_name ." ". $sp->last_name; ?></a>
            <p>
                <?php echo nl2br($sp->text); ?>
            </p>
        </div>

    </div>
    <?php endforeach; ?>

jQuery

$('.stream-form').on('submit', function(){
        var streamData = $(this).serialize();
        $.ajax({
            url: "<?php echo base_url(); ?>stream/insert_stream",
            type: "POST",
            data: streamData,
            dataType: "json",
            success: function(stream) {

                if(stream.error == 0)
                {
                    $('.stream-text').val("");
                    $('.stream-posts').append().text(stream.text);


                }   
            }
        });
        return false;
    });

このjQueryコードでは、すべてを追加してdivを壊します。新しい投稿に、送信された内容を表示したいと思います。

モデル

    function add_stream()
    {

        $data = array(
            'added_by' => $this->session->userdata('user_id'),
            'text' => $this->input->post('stream_text')
        );

        $this->db->insert('pf_stream', $data);


    }

function load_stream_post()
{
    $this->db->select('*');
        $this->db->from('pf_stream');
        $this->db->join('pf_users', 'pf_users.id = pf_stream.added_by');
        $this->db->order_by('pf_stream.sid', 'DESC');
        $this->db->limit(1);
        $query = $this->db->get();

        if($query->num_rows() > 0)
        {   
            foreach($query->result() as $row)
            {
                $sdata[] = $row;
            }
        return $sdata;  
        }

}
    // this is for the view
    function select_stream()
    {
        $this->db->select('*');
        $this->db->from('pf_stream');
        $this->db->join('pf_users', 'pf_users.id = pf_stream.added_by');
        $this->db->order_by('pf_stream.sid', 'DESC');
        $this->db->limit(5);
        $query = $this->db->get();

        if($query->num_rows() > 0)
        {   
            foreach($query->result() as $row)
            {
                $data[] = $row;
            }
        return $data;   
        }
    }

コントローラ

 public function index()
   {
        $this->load->view('partials/header');
        $data['stream_posts'] = $this->stream_model->select_stream();
           $this->load->view('stream_view', $data);
        $this->load->view('partials/footer');
   }

    function insert_stream()
    {
        $this->form_validation->set_rules('stream_text', 'Üzenet', 'trim|required|xss_clean');

        if($this->form_validation->run() == false)
        {
            $stream = array('error' => 1);
        } else {
            $this->stream_model->add_stream();
            $data['stream_result'] = $this->stream_model->load_stream_post();
            $stream = array(
               'error' => 0, 
               'sid' => $data['stream_result'][0]->sid,
               'text' => $data['stream_result'][0]->text,
               'author' => $data['stream_result'][0]->first_name . " " . $data['stream_result'][0]->last_name,
            );
        }
        echo json_encode($stream);
    }

誰かが私に何が欠けているのかヒントを教えてもらえますか?

4

1 に答える 1

5

問題はここにあると思います

$('.stream-posts').append().text(stream.text);

これは

$('.stream-posts').append(stream.text);
于 2012-07-08T10:07:45.240 に答える