1

私のコントローラーはデータベースモデルからデータを取得し、それらをビューに送信します。ビューでは、各エンティティに div を描画するために foreach ループを実行します。すべての単一の div には、そのエンティティを評価するためのフォーム要素があります。

コントローラ:

function index(){
    $data['main_content'] = 'list';
    $data['entities'] = $this->database_model->getEntities();
    $this->load->view('template', $data);
}

function postRate(){
    $rate = array(
        'entity_id' => $this->input->post('entity_id'),
        'owner_id' => $this->input->post('owner_id'),
        'value' => $this->input->post('value')
    );
    $this->database_model->persistRate($rate);
    $this->index();
}

モデル:

function getEntities(){
    return $this->db->get('entity')->result();
}

function persistRate($rate){
    return $this->db->insert('rate', $rate);
}

意見:

<?php foreach($entities as $entity) : ?>
    <div class="entity">
        <?php echo form_open('entities/postRate/', $attr); ?>
        <?php echo form_hidden('entity_id', $entity->id); ?>
        <?php echo form_hidden('owner_id', $userid); ?>
        <?php echo form_hidden('value', 1); ?>
        <?php echo form_submit('submit', '+1'); ?>
        <?php echo form_close(); ?>
    </div>
<?php endforeach; ?>

この場合、評価後にページ全体がリロードされますが、フォームが送信された div のみを更新したいと考えています。私はjavascriptまたはjQueryがそれを行うことができることを知っています.. UPDATE ..しかし、私はそれらのロジックを知りません.実際のエンティティの正確なdivまたは正確な(更新された)データをどうやって知るのでしょうか? データベースから取得しますか?私はjs/jquery/ajaxと混同しています。

4

1 に答える 1

1

これは非常にシンプルで、http: //api.jquery.com/jQuery.ajax/で見つけることができます。

次に例を示します。

$.ajax({
  url: "http://localhost/your_site/controller/method/",
  type: "POST",
  data: {id : 123},
  dataType: "html",
  success: function(data) {
    $('.result').html(data);
  }
});

<div class="result">
//YOUR AJAX RESULT WILL BE HERE
</div>

コントローラー メソッドは、 というポスト変数を受け取る必要がありますid

これは基本的な例です。実際にリンクを読んで詳細を確認してください。;)

于 2012-06-14T01:33:18.247 に答える