まず申し訳ありませんが、私は本当に大きな初心者です。
本当に解決できない問題に遭遇しました。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);
}
誰かが私に何が欠けているのかヒントを教えてもらえますか?