1

私は比較的簡単なことを達成しようとしています-ユーザーがビューページにコメントを付けたり、データベースを更新したり、ページ全体を更新せずにページに新しいコンテンツを動的に表示したりできるようにします。

これまでの私の努力は成功していません-私がしていることにいくつかの問題があるかもしれません!

ビューページで私はこれを試しました(2つの変数をCIコントローラー関数に送信するため):

<script type="text/javascript">
function ajax(id, user_id) {
jQuery('#dynamicdiv').load('/controller/function/' + id + '/' + user_id);
}
</script>

<div id='dynamicdiv'>
</div>

ユーザーコメントを収集するためのテキストエリアがありますが、コントローラー関数で、データベースに書き込むためにこれを投稿データとして呼び出すことができますか?その場合でも、他の2つの変数($idと$user_id)をajax関数に送信する必要があります。

<?php $atts = array (
  'class' => "alignright button",
  'onClick' => "ajax('$id,$user_id')",
  ); ?>
<?php echo anchor(current_url(), 'Post my Comment', $atts); ?>

コントローラーでは、ユーザーにとどまらせたいページとは異なる機能(ビュー)が含まれます。

$data = $this->model->database_query($id, $user_id);

echo $data; // from reading other posts it seems I would process the data within this function, to have it displayed on the page the user is viewing?

助けていただければ幸いです。

4

2 に答える 2

1

デフォルトのアンカー動作をブロックすることを忘れないでください (たとえば、パラメーターに追加return false;することによって)。onclick

<?php $atts = array (
'class' => "alignright button",
'onClick' => "ajax('$id,$user_id'); return false;",
); ?>
于 2012-12-09T01:57:44.270 に答える
0

次のように ajax リクエストを作成できます。

function ajax(id, user_id) {
    $.ajax({
        url: base_url + controller_name + '/' + action_name,
        type: 'GET',
        data: { id: id, user_id: user_id },
        dataType: 'json',
        success: function (data) {
            // append the returned result to your #dynamicdiv
        }
    });
}

そしてコントローラーで:

$id = $this->input->get('id');
$user_id = $this->input->get('user_id');

$data = $this->model->database_query($id, $user_id);
echo json_encode($data);

お役に立てれば

于 2012-12-09T17:33:57.780 に答える