如何使用锚表单的值

时间:2014-03-20 17:15:53

标签: codeigniter

查看:

<?php 
foreach ($query as $row){ 
    echo  '<tr><td>
           <label class="checkbox">' .
           form_checkbox('delete[]',$row['link']) .
           form_anchor('site/see_art',$row['link']) . 
           $row['title'] . "</a></td>
           <td> " . substr($row['pub_date'], 5, 12) . "</label></td></tr>"; 
} ?>

控制器:

function see_art()
{       
    $this->load->model('membership_model');
    $this->membership_model->see_art();
}

模型:

function see_art()
{       
    $this->db->where(array('title' => !!THE VALUE OF THE ANCHOR));
    $q = $this->db->get('feeds');}
    print_r($q->result());
}

在我看来,我已经展示了一些标题。我想做类似的事情:当点击标题时使用函数控制器并显示我的数据库中的行,其中title = VALUE of anchor。我不知道该怎么做以及如何在点击它时使用锚的值。

1 个答案:

答案 0 :(得分:0)

好的,你只有办法,无需重新加载页面: AJAX

您必须使用javascript编程(我建议您使用jQuery执行请求)一个事件,允许您将请求发送到标题的服务器。

如果您不知道如何使用它,请检查http://www.w3schools.com/jquery/jquery_ajax_intro.asp

您将对控制器中的方法执行请求,并在那里查看答案。

在您的控制器中,您将拥有类似

的内容
public function ajax_petition() {
     $slug = $this->input->post('slug');
     $this->load->model('membership_model');
     $title = $this->membership_model->get_title( $slug );

     return $title;
}

您必须对模型进行编程才能返回标题:

public function get_title( $slug ) {
    $object = $this->db->select('title')
    ->from('feeds')
    ->where('slug', $slug) 
    ->limit(1)
    ->get()

    return ($object->num_rows > 1) ? $object->row()->title : '';
}

对不起,您的问题很通用,但根据您的要求,您必须使用我上面写的内容

其他的事情,并不是真正相关但重要的事情:不要在模型中使用print_r或echo。模型仅用于检索数据,控制器仅用于获取输入数据并调用模型,而视图仅用于显示控制器发送给它们的数据。否则,你将杀死MVC,D

您的上述功能应该是:

控制器:

function see_art()
{   
    // Get the input data from user
    $title =  $this->input->post('title');

    // Retrieve the data from the model
    $this->load->model('membership_model');        
    $data['feeds'] = $this->membership_model->see_art( $title );

    // Send them to the view
    $this->load->view('path_to_your_view', $data);
}

查看

<?php // This will print all the feeds sent from the controller
foreach ($feeds as $feed){ 
    echo  '<tr><td>
           <label class="checkbox">' .
           form_checkbox('delete[]', $feed->link ) .
           form_anchor('site/see_art', $feed->link ) . 
           $feed->title . "</a></td>
           <td> " . substr($feed->pub_date, 5, 12) . "</label></td></tr>"; 
} ?>

型号:

// This will give you back all the feeds with the title sent
function see_art( $title )
{       
    $this->db->where( array('title' => $title ) );
    $q = $this->db->get('feeds');}
    return $q->result();
}

更多内容:从DDBB检索数据时,使用“select”并准确指定所需的数据,将提高应用程序的性能。

最后,也许控制器,模型和视图对于你想要的东西不准确,但我只想表达如何做到这一点的想法。